StringBuffer 和 StringBuilder 类在需要对字符串进行大量修改时使用。

与字符串不同,可以不停地修改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类支持的重要方法的列表-

Sr.No. Methods & Description
1 public StringBuffer append(String s)

更新调用该方法的对象的值。该方法采用布尔值,char,int,long,String等。

2 public StringBuffer reverse()

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

3 public delete(int start, int end)

删除从开始索引到结束索引的字符串。

4 public insert(int offset, int i)

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

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

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

这是与String类非常相似的其他方法(set方法除外)的列表-

Sr.No. Method & Description
1

int Capacity()

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

2

char charAt(int index)

返回由index缓冲区指示的当前由字符串缓冲区表示的序列的指定字符。

3

避免sureCapacity(int minimumCapacity)

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

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(整数开始,整数结束)

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

13

字符串子字符串(以int开头)

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

14

字符串子字符串(整数开头,整数结尾)

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

15

字符串toString()

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

参考链接

https://www.learnfk.com/java/java-string-buffer.html