Java中的StringBuffer类

2025年4月14日 | 阅读时间:4分钟

JavaStringBuffer类用于创建可变(可修改)的String对象。Java中的StringBuffer类与String类相同,只是它是可变的,即它可以被更改。

注意:JavaStringBuffer类是线程安全的,即多个线程不能同时访问它。因此,它是安全的,并且会产生一个有序的结果。

StringBuffer类的构造函数

构造函数描述
StringBuffer()它创建一个初始容量为16的空字符串缓冲区。
StringBuffer(String str)它使用指定的字符串创建一个字符串缓冲区。
StringBuffer(int capacity)它使用指定的容量作为长度创建了一个空字符串缓冲区。

StringBuffer类的常用方法

修饰符和类型方法描述
public synchronized StringBufferappend(String s)用于将指定的字符串附加到此字符串。append()方法是重载的,如append(char)、append(boolean)、append(int)、append(float)、append(double)等。
public synchronized StringBufferinsert(int offset, String s)用于在指定位置将指定的字符串插入到此字符串中。insert()方法是重载的,如insert(int, char)、insert(int, boolean)、insert(int, int)、insert(int, float)、insert(int, double)等。
public synchronized StringBufferreplace(int startIndex, int endIndex, String str)用于替换从指定的startIndex到endIndex的字符串。
public synchronized StringBufferdelete(int startIndex, int endIndex)用于删除从指定的startIndex到endIndex的字符串。
public synchronized StringBufferreverse()用于反转字符串。
public intcapacity()用于返回当前容量。
public voidensureCapacity(int minimumCapacity)用于确保容量至少等于给定最小值。
public charcharAt(int index)用于返回指定位置的字符。
public intlength()用于返回字符串的长度,即字符的总数。
public Stringsubstring(int beginIndex)用于返回从指定的beginIndex开始的子字符串。
public Stringsubstring(int beginIndex, int endIndex)用于返回从指定的beginIndex到endIndex的子字符串。

什么是可变字符串?

可以被修改或更改的字符串称为可变字符串。StringBuffer和StringBuilder类用于创建可变字符串。

1) StringBuffer类的append()方法

append()方法将给定的参数连接到此字符串。

示例

编译并运行

输出

Hello Java

2) StringBuffer类的insert()方法

insert()方法将给定的字符串插入到此字符串的给定位置。

示例

编译并运行

输出

HJavaello

3) StringBuffer类的replace()方法

replace()方法替换从指定的beginIndex到endIndex的字符串。

示例

编译并运行

输出

HJavalo

4) StringBuffer类的delete()方法

StringBuffer类的delete()方法删除从指定的beginIndex到endIndex的字符串。

示例

编译并运行

输出

Hlo 

5) StringBuffer类的reverse()方法

StringBuffer类的reverse()方法反转当前字符串。

示例

编译并运行

输出

olleH  

6) StringBuffer类的capacity()方法

StringBuffer类的capacity()方法返回缓冲区的当前容量。缓冲区的默认容量为16。如果字符数超过其当前容量,它将通过(oldcapacity*2)+2来增加容量。例如,如果当前容量是16,它将是(16*2)+2=34。

示例

编译并运行

输出

16
16
34

7) StringBuffer类的ensureCapacity()方法

StringBuffer类的ensureCapacity()方法确保给定容量是当前容量的最小值。如果它大于当前容量,它将通过(oldcapacity*2)+2来增加容量。例如,如果当前容量是16,它将是(16*2)+2=34。StringBuffer类的ensureCapacity()方法保证指定的容量至少等于当前容量。如果指定容量超过当前容量,它会将容量增加到(oldcapacity* 2) + 2。例如,如果当前容量为16,则计算为(16* 2) + 2 = 34。

示例

编译并运行

输出

16
16
34
34
70