当需要为一个类编写 toString() 方法时,如果字符串操作比较简单,便可以信赖编译器,它会为你合理地构造最终的字符串结果(而不会不断创建冗余的中间变量)。
String mongo = "mongo";
String s = "abc" + "mongo" + "def" + 47;
// StringBuilder.apppend("abc").append(mongo).append("def").append(47)
// StringBuilder.toString() ⇒ s
但如果要在 toString() 方法中使用循环,那么最好自己创建(而不是交由编译器)一个 StringBuilder 对象,用它来构造最终的结果。
StringBuilder result = new StringBuilder();
for () {
result.append(...);
}
return result.toString();
1. String 与 StringBuilder
String 对象是不可变的,你可以赋给一个 String 对象任意多的别名。因为 String 对象具有只读特性,指向它的任何引用都不可能改变它的值。因此,也就不会对其他的引用有什么影响。
2. StringBuilder 丰富的成员函数
- 最常用的:append(), toString()
- insert(), replace(), substring(), reverse()
delete(start, end):注意端点的开闭性;
- 比如删除末尾的两个元素:
delete(seq.length()-2, seq.length())