在Java中,`StringBuffer` 是一个线程安全的可变字符序列。它允许你在创建后进行修改(如添加、删除和替换字符)。由于它是线程安全的,所以它在多线程环境下比 `StringBuilder` 更有优势,但性能上可能稍逊一筹。
以下是一个 `StringBuffer` 用法的示例:
public class StringBufferExample {
public static void main(String[] args) {
// 创建一个空的 StringBuffer
StringBuffer sb = new StringBuffer();
// 向 StringBuffer 中追加字符串
sb.append("Hello, ");
sb.append("world!");
// 输出 StringBuffer 中的字符串
System.out.println(sb.toString()); // 输出: Hello, world!
// 在 StringBuffer 中的指定位置插入字符串
sb.insert(7, "beautiful "); // 注意:索引从0开始
// 再次输出 StringBuffer 中的字符串
System.out.println(sb.toString()); // 输出: Hello, beautiful world!
// 替换 StringBuffer 中指定位置的字符序列
sb.replace(7, 17, "fantastic"); // 替换从索引7到索引17(不包括17)的字符序列
// 输出替换后的 StringBuffer 中的字符串
System.out.println(sb.toString()); // 输出: Hello, fantastic world!
// 反转 StringBuffer 中的字符序列
sb.reverse();
// 输出反转后的 StringBuffer 中的字符串
System.out.println(sb.toString()); // 输出: !dlrow tsacitnaf ,olleH
// 删除 StringBuffer 中指定位置的字符序列
sb.delete(0, 6); // 删除从索引0到索引6(不包括6)的字符序列
// 输出删除后的 StringBuffer 中的字符串
System.out.println(sb.toString()); // 输出: tsacitnaf ,olleH
// 删除 StringBuffer 中最后一次出现的指定字符串
// 注意:如果字符串不存在,则此方法不更改 StringBuffer
sb.delete(sb.lastIndexOf(","), sb.lastIndexOf(",") + 1);
// 输出删除后的 StringBuffer 中的字符串
System.out.println(sb.toString()); // 输出: tsacitnaf olleH
// 长度和容量
System.out.println("Length: " + sb.length()); // 输出当前长度
System.out.println("Capacity: " + sb.capacity()); // 输出当前容量
}
}
这个示例展示了 `StringBuffer` 的基本用法,包括创建、追加、插入、替换、反转、删除以及查询长度和容量的方法。