我有一个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();
}
然而在这一点上,它适合。我可能做错了什么,但对于我的生活,我不确定它是什么。我可能过于复杂,但任何建议都会受到欢迎。
答案 0 :(得分:1)
split()
方法接受一个用作正则表达式的字符串。如果您阅读正则表达式(我强烈建议您这样做),则字符'['具有除您想要的字面意义之外的特殊含义。因此,您必须在前面加上'\\'来逃避它。
将该行更改为String[] tempString = animal.split("Animal \\[");
,它应该有效。