Java 中的 StringBuffer 类详解
StringBuffer
类是 Java 中用于创建可变字符串的类。与 String
类不同,StringBuffer
对象允许在原有字符串上进行修改,而不需要创建新的字符串对象。这种特性使得 StringBuffer
在需要频繁修改字符串的场景下更加高效。此外,StringBuffer
是线程安全的,这意味着它的方法是同步的,可以在多线程环境中安全使用。
StringBuffer 类的特点
- 可变性:
StringBuffer
对象的字符串内容可以被修改。 - 线程安全:
StringBuffer
的方法是同步的,可以在多线程环境中使用。
StringBuffer 类的构造方法
StringBuffer
类提供了几种构造方法,允许以不同的方式初始化字符串缓冲区:
public class Demo1StringBuffer {
public static void main(String[] args) {
StringBuffer sb1 = new StringBuffer();
System.out.println("默认容量:"+sb1.capacity());//默认容量为16个字符
System.out.println("sb1:"+sb1);//结果不是地址值,已经重写了toString方法
System.out.println("存储的字符数量:"+sb1.length());//获取StringBuffer中存储的字符串长度(字符个数)
System.out.println("-------------------------");
//创建指定大小的StringBuffer
StringBuffer sb2 = new StringBuffer(50);
System.out.println("sb2的容量:"+sb2.capacity());
System.out.println("-------------------------");
//创建一个存储了一个字符串的StringBuffer
StringBuffer sb3 = new StringBuffer("hello");
System.out.println("sb3默认的容量:"+sb3.capacity());//默认大小等于16+实际大小
System.out.println("sb3实际的容量:"+sb3.length());
System.out.println("sb3:" + sb3);
}
}
StringBuffer 类的方法
StringBuffer
类提供了多种方法来操作字符串,包括添加、删除、替换、反转和截取等。
添加功能
StringBuffer buffer = new StringBuffer("Hello");
// 在字符串缓冲区的末尾追加一个字符串
buffer.append(" World");
System.out.println(buffer); // 输出:Hello World
// 在指定位置插入一个字符串
buffer.insert(5, " Java");
System.out.println(buffer); // 输出:Hello Java World
删除功能
// 删除指定位置的字符
buffer.deleteCharAt(5);
System.out.println(buffer); // 输出:Hello Java World
// 删除从开始位置到结束位置的字符序列
buffer.delete(5, 9);
System.out.println(buffer); // 输出:Hello World
替换功能
// 替换从开始位置到结束位置的字符序列
buffer.replace(5, 10, "Java");
System.out.println(buffer); // 输出:Hello Java
反转功能
// 反转字符串缓冲区中的字符序列
buffer.reverse();
System.out.println(buffer); // 输出:avaJ olleH
截取功能
// 从指定位置开始截取到字符串缓冲区末尾的字符序列
String substringFromStart = buffer.substring(5);
System.out.println(substringFromStart); // 输出:olleh
// 从开始位置到结束位置截取字符序列
String substringToEnd = buffer.substring(5, 9);
System.out.println(substringToEnd); // 输出:olle
总结
StringBuffer
类是 Java 中处理可变字符串的基础,其线程安全的特性和丰富的方法使得字符串操作既安全又方便。在需要频繁修改字符串的场景下,使用 StringBuffer
可以提高程序的效率。通过理解 StringBuffer
类的特点和方法,可以更有效地进行字符串处理和编程。
扩展StringBuilder和StringBuffer
在 Java 中,StringBuilder 和 StringBuffer 都是用于创建可变字符串的类。它们提供了相似的方法来操作字符串,如添加、删除、替换和反转等。尽管它们在功能上非常相似,但它们之间存在一些关键的区别,主要体现在线程安全性和性能上,StringBUffer线程安全但效率低,StringBuilder反之。
标签:buffer,StringBuffer,System,字符串,println,out From: https://www.cnblogs.com/bjynjj/p/18487813