13.1 不可变String
Immutable
class Immutable {
public static String upcase(String s) {
return s.toUpperCase();
}
public static void test(String s) {
s = "test";
System.out.println("test:" + s);
}
public static void chapter13_1() {
String q = "how";
String qq = upcase(q);
System.out.println(q);
System.out.println(qq);
test(q);
System.out.println(q);
}
}
String对象是不可变的。String类中的看起来会修改String值的方法,实际上都是创建了一个全新的String对象。
13.2 StringBuilder
UsingStringBuffer
class UsingStringBuilder {
public String toString() {
Random random = new Random(7);
StringBuilder res = new StringBuilder("[");
for (int i=0;i<5;i++) {
res.append(random.nextInt(10));
res.append(", ");
}
//[...),即删除res.length()-2和res.length()-1位置的字符
res.delete(res.length()-2,res.length());
res.append("]");
return res.toString();
}
public static void chapter13_2() {
UsingStringBuilder usingStringBuilder = new UsingStringBuilder();
System.out.println(usingStringBuilder.toString());
}
}
常用方法:append(),toString(),delete(),reverse(),substring()