java stringbuffer的用法示例


在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` 的基本用法,包括创建、追加、插入、替换、反转、删除以及查询长度和容量的方法。