Java StringBuffer & StringBuilder类

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

String类不同,StringBufferStringBuilder类的对象可以反复修改,而不会留下大量新的未使用对象。

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

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

public class Test {

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

执行上面示例代码,得到以下结果:

Test String Buffer By xuhuhu.com

StringBuffer方法

以下是StringBuffer类中的方法列表 -

编号 方法 描述
1 public StringBuffer append(String s) 该方法更新对象的值。该方法采用:booleancharintlongString等类型。
2 public StringBuffer reverse() 该方法反转StringBuffer对象的值。
3 public delete(int start, int end) 删除从起始索引开始直到结束索引的字符串。
4 public insert(int offset, int i) 此方法将字符串s插入偏移量指定的位置。
5 public StringBuffer replace(int start, int end, String str) 此方法将此StringBuffer的子字符串中的字符替换为指定的字符。

以下是与String类相似的其他方法(set方法除外)列表 -

编号 方法 描述
1 int capacity() 返回StringBuffer的当前容量。
2 char charAt(int index) 返回由指定索引在当前StringBuffer表示序列的字符。
3 void ensureCapacity(int minimumCapacity) 确保缓冲区的容量至少等于指定的最小值。
4 void getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin) 从此StringBuffer复制到目标字符数组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() 返回此StringBuffer的长度(字符数)。
10 void setCharAt(int index, char ch) StringBuffer的指定索引处的字符设置为ch
11 void setLength(int newLength) 设置此StringBuffer的长度。
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() 转换为表示此StringBuffer中数据的字符串。

上一篇: Java String类 下一篇: Java快速入门