可变字符串
- StringBuffer:可变长字符串,JDK1.0提供,运行效率慢、线程安全。
- StringBuilder:可变长字符串,JDK1.5提供,运行效率快、线程不安全。
- 方法:append(),insert(),replace(),delete(),reverse()
package com.jacyzhu.string;
public class Demo04 {
public static void main(String[] args) {
StringBuffer sb = new StringBuffer();
sb.append("java世界第一");
System.out.println(sb);
System.out.println(sb.toString());
sb.append("java真香");
System.out.println(sb.toString());
sb.append("java不错");
System.out.println(sb.toString());
sb.insert(0, "我在最前面");
System.out.println(sb.toString());
sb.replace(0, 5, "hello");
System.out.println(sb.toString());
sb.delete(0, 5);
System.out.println(sb.toString());
sb.reverse();
System.out.println(sb.toString());
System.out.println(sb.length());
sb.delete(0, sb.length());
System.out.println(sb);
System.out.println(sb.length());
}
}
运行结果:
java世界第一
java世界第一
java世界第一java真香
java世界第一java真香java不错
我在最前面java世界第一java真香java不错
hellojava世界第一java真香java不错
java世界第一java真香java不错
错不avaj香真avaj一第界世avaj
20
0
验证StringBuilder效率高于String
package com.jacyzhu.string;
public class Demo05 {
public static void main(String[] args) {
long start = System.currentTimeMillis();
StringBuilder sb = new StringBuilder();
for (int i = 0; i < 99999; i++) {
sb.append(i);
}
System.out.println(sb.toString());
long end = System.currentTimeMillis();
System.out.println("用时:"+(end-start));
}
}