从SuperClass拆分toString

时间:2014-10-28 04:04:53

标签: split tostring stringbuilder

我有一个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 个答案:

答案 0 :(得分:1)

split()方法接受一个用作正则表达式的字符串。如果您阅读正则表达式(我强烈建议您这样做),则字符'['具有除您想要的字面意义之外的特殊含义。因此,您必须在前面加上'\\'来逃避它。

将该行更改为String[] tempString = animal.split("Animal \\[");,它应该有效。