String类自身有一个最大的缺陷,内容一旦声明,则不可以改变。所以在JDK提供了修改字符串内容的类:StringBuffer。
StringBuffer类中的方法使用了synchronized关键字定义,适合于多线程并发下访问的同步处理;而StringBuilder类中的方法没有使用synchronized关键字定义,属于非线程安全的方法。
1、修改StringBuffer内容的例子:
package com.mydemo;
public class StringBufferDemo {
public static void main(String[] args) {
StringBuffer sb1 = new StringBuffer("www.");
StringBuffer sb2 = new StringBuffer();
StringBuffer sb3 = new StringBuffer();
StringBuffer sb4 = new StringBuffer();
change(sb1);
// 用insert()方法插入数据------StringBuffer类特有的方法
sb2.append("cn").insert(0, "www.").insert(4, "google");
// 用delete()方法删除指定范围中的内容------StringBuffer类特有的方法
sb3.append("hello world").delete(6, 12).insert(6, "java");
// 字符串反转------StringBuffer类中最有特点的一个方法
sb4.append("hello world").reverse();
// 将StringBuffer变为String实例
String result = sb1.toString();
System.out.println(result);
System.out.println(sb2);
System.out.println(sb3);
System.out.println(sb4);
}
public static void change(StringBuffer sb1Temp) {
sb1Temp.append("baidu.").append("com");
}
}
运行结果:
www.baidu.com
www.googlecn
hello java
dlrow olleh