当需要对字符串进行大量修改时,可以使用 StringBufferStringBuilder 类。

与字符串不同, StringBuffer 和 String builder 类型的对象可以反复修改,而不会留下大量新的未使用的对象。

StringBuilder 类是从 Java 5 开始引入的,StringBuffer 和 StringBuilder 之间的主要区别是StringBuilders 方法不是线程安全的(不同步)。

建议尽可能使用 StringBuilder,因为它比 StringBuffer 更快。但是,如果需要线程安全,最好的选择是 StringBuffer 对象。

示例

public class Test {

   public static void main(String args[]) {
      StringBuffer sBuffer = new StringBuffer("test");
      sBuffer.append(" String Buffer");
      System.out.println(sBuffer);  
   }
} 

这个将产生以下结果 -

输出

test String Buffer 

StringBuffer 方法

这里是 StringBuffer 类支持的重要方法列表 -

序号.方法和说明
1public StringBuffer append(String s)

更新调用该方法的对象的值。该方法接受 boolean、char、int、long、Strings 等。

2public StringBuffer reverse()

该方法反转调用该方法的 StringBuffer 对象的值。

3public delete(int start, int end)

删除从以下位置开始的字符串起始索引直到结束索引。

4public insert(int offset, int i)

此方法在偏移量提到的位置插入字符串 s

5replace(int start, int end, String str)

此方法将此 StringBuffer 的子字符串中的字符替换为指定 String 中的字符。

以下是其他方法的列表(除了 set 方法),它与 String 类非常相似 -

序号.方法及说明
1

int capacity()

返回字符串缓冲区的当前容量。

2

char charAt(int index)

返回由索引参数指示的当前由字符串缓冲区表示的序列的指定字符.

3

void EnsureCapacity(intminimumCapacity)

确保缓冲区的容量至少等于指定的最小值。

4

void getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin)

字符从此字符串缓冲区复制到目标字符数组 dst 中。

5

int indexOf(String str)

返回指定子字符串在该字符串中第一次出现的索引。

6

int indexOf(String str, int fromIndex)

返回此字符串中指定子字符串第一次出现的索引,从指定索引开始。

7

int lastIndexOf(String str)

返回此字符串中指定子字符串最右侧出现位置的索引。

8

int lastIndexOf(String str, int fromIndex)

返回此字符串中最后一次出现的指定子字符串的索引。

9

int length()

返回该字符串的长度(字符数)

10

void setCharAt(int index, char ch)

此字符串缓冲区指定索引处的字符设置为 ch。

11

void setLength(int newLength)

设置此字符串缓冲区的长度。

12

CharSequence subSequence(int start, int end)

返回一个新的字符序列,即该序列的子序列。

13

String substring(int start)

返回一个新字符串,其中包含当前包含在此 StringBuffer 中的字符子序列。子字符串从指定索引处开始,一直延伸到 StringBuffer 的末尾。

14

String substring(int start, int end)

返回一个新字符串,其中包含当前包含在此 StringBuffer 中的字符子序列。

15

String toString()

转换为表示此数据的字符串字符串缓冲区。