在 Java 中,StringBuffer 和 StringBuilder 类都是用于处理可变的字符序列的类。它们属于 java.lang 包,提供了对字符串的可变操作,相较于 String 类的不可变性,它们更适用于需要频繁修改字符串的情况。

StringBuffer 类:

StringBuffer 类是线程安全的,适用于多线程环境。由于它是线程安全的,相对于 StringBuilder,它的性能稍差一些。

创建 StringBuffer 对象:
StringBuffer buffer = new StringBuffer();

添加/追加字符串:
buffer.append("Hello");
buffer.append(" ");
buffer.append("Java");

或者使用链式操作:
buffer.append("Hello").append(" ").append("Java");

插入字符串:
buffer.insert(6, "Beautiful ");

删除字符:
buffer.delete(6, 16);

反转字符串:
buffer.reverse();

获取字符串:
String result = buffer.toString();

StringBuilder 类:

StringBuilder 类与 StringBuffer 类相似,但是不是线程安全的。相对于 StringBuffer,StringBuilder 的性能更好,适用于单线程环境。

创建 StringBuilder 对象:
StringBuilder builder = new StringBuilder();

添加/追加字符串:
builder.append("Hello");
builder.append(" ");
builder.append("Java");

或者使用链式操作:
builder.append("Hello").append(" ").append("Java");

插入字符串:
builder.insert(6, "Beautiful ");

删除字符:
builder.delete(6, 16);

反转字符串:
builder.reverse();

获取字符串:
String result = builder.toString();

选择 StringBuffer 还是 StringBuilder:

  •  如果在多线程环境中使用,或者需要线程安全性,则选择 StringBuffer。

  •  如果在单线程环境中使用,且不需要线程安全性,则选择 StringBuilder,因为它的性能更好。


这两个类提供了与 String 类似的方法,使得字符串的操作更加灵活。需要注意的是,与 String 不同,StringBuffer 和 StringBuilder 是可变的,允许直接修改字符串内容。



转载请注明出处:http://www.zyzy.cn/article/detail/415/Java