2014-10-28 54 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