2014-10-28 64 views
0

我有一個類的toString一個toString:分割從超

@Override 
    public String toString() { 
     StringBuilder animalString = new StringBuilder(); 
     return animalString.append("Animal [breed=").append(breed).append(", weight in Kilos=").append(weight).append("]").toString(); 
    } 

然後,我有一個子類調用上面的toString然後我儘量拆分,所以我可以將信息添加到它的子類自己的toString :

@Override 
    public String toString() { 
     String animal = (super.toString()); 
     String[] tempString = animal.split("Animal ["); 
     String animalString = tempString[1]; 
     StringBuilder animalSB = new StringBuilder(); 
     return animalSB.append("Cat [hunts=").append(hunts).append(animalString).toString(); 
    } 

然而,在這一點上它適合。我可能做錯了什麼,但對於我的生活,我不確定它是什麼。我可能過於複雜了,但任何建議將是最受歡迎的。

回答

1

split()方法採用用作正則表達式的字符串。如果您閱讀了有關正則表達式的內容(我強烈建議您這樣做),則字符'['具有除您想要的字面含義之外的特殊含義。因此,您必須通過在\'之前來轉義它。

將該行更改爲String[] tempString = animal.split("Animal \\[");,它應該起作用。

+0

太棒了!我在正確的軌道上,但是這是我對「[」角色缺乏認識。非常感謝! – Wulf 2014-10-28 06:19:17

+0

沒問題。還有其他有特殊含義的角色,比如大括號,句號等。當你有機會時,請查看我推薦的那些網站,並使用它。 – hfontanez 2014-10-28 12:31:24