它们都是可变字符串,使用上功能上基本一样,StringBuilder不支持多线程(非线程安全),它们都支持动态修改。(不牵扯到多线程建议用StringBuilder,牵扯到多线程用StringBuffer)
一、可变字符串常见方法
1 public StringBuffer append(String s) 将指定的字符串追加到此字符序列。
2 public StringBuffer reverse() 将此字符序列用其反转形式取代。
3 public StringBuilder delete(int start, int end) 移除此序列的子字符串中的字符。
4 public insert(int offset, int i) 将 int 参数的字符串表示形式插入此序列中。
5 insert(int offset, String str) 将 str 参数的字符串插入此序列中。
6 replace(int start, int end, String str) 使用给定 String 中的字符替换此序列的子字符串中的 字符。
二、代码举例
package eee;
public class Demo2 {
public static void main(String[] args) {
//可变数组举例
//追加字符串
//首先实例化StringBuffer 对象
StringBuilder sb = new StringBuilder("Hello 你好");
System.out.println("初始字符串为:" + sb.toString());
//追加字符串操作
System.out.println("追加字符串123456后为;" + sb.append(1234556).toString());
//将字符串取反
System.out.println("将字符串取反为:" + sb.reverse());
//移除此序列的字符串中的字符
StringBuilder s2 = new StringBuilder("hello");
System.out.println("移除hello中(1,2):从1索引开始移除到2索引结束,不包括二" + s2.delete(1, 2));
//将int参数的字符串表示形式插入此序列中
StringBuilder s3 = new StringBuilder("hello");
System.out.println("在第四个索引位置插入哈哈:" + s3.insert(4, "哈哈"));
//使用给定的字符替换此序列字符串中的字符
StringBuilder S4 = new StringBuilder("hello");
System.out.println("将hello中0索引的位置替换为字符串我是开头" + S4.replace(0, 1, "我是开头"));
}
}
三、代码运行截图