StringBuffer是提供了大量的字符串功能的字符串(String)类的对等类


1、StringBuffer构造函数

  • StringBuffer( ) 
  • StringBuffer(int size) 
  • StringBuffer(String str)

2、length() 和capacity()

  • 通过调用length() 方法可以得到当前StringBuffer的长度
  • 而通过调用capacity()方法可以得到总的分配容量
  1. public static void main(String[] args) { 
  2.     StringBuffer buffer = new StringBuffer("Hello"); 
  3.     System.out.println("buffer:\t" + buffer); 
  4.     System.out.println("length:\t" + buffer.length()); 
  5.     System.out.println("capacity:\t" + buffer.capacity()); 
  6.  
  7.     // 输出结果 
  8.     // ↓↓↓ 
  9.     // buffer: HelloStringBuffer 
  10.     // length: 5 
  11.     // capacity: 21 

由于StringBuffer 在创建时由字符串“Hello”初始化,因此它的长度为5。因为给16个附加的字符自动增加了存储空间,因此它的存储容量为21。 


3、ensureCapacity()

如果想在构造StringBuffer之后为某些字符预分配空间,可以使用ensureCapacity( )方法设置缓冲区的大小。这在事先已知要在StringBuffer上追加大量小字符串的情况下是有用的

  1. //这里capacity指定了缓冲区的大小。  
  2. void ensureCapacity(int capacity)  


4、setLength()

使用setLength() 方法在StringBuffer对象内设置缓冲区的大小

  1. void setLength(int len) 

 这里len指定了缓冲区的长度。这个值必须是非负的。


5、charAt()和setCharAt()

 

使用charAt( ) 方法可以从StringBuffer中得到单个字符的值。可以通过setCharAt( ) 方法给StringBuffer中的字符置值

  1. char charAt(int where)  
  2. void setCharAt(int where, char ch)  

 

接下来写个例子:

  1. public static void main(String[] args) { 
  2.     StringBuffer buffer = new StringBuffer("Hello"); 
  3.  
  4.     System.out.println("获取第2个字符" + buffer.charAt(1)); 
  5.     buffer.setCharAt(1'b'); 
  6.     System.out.println("将第二个字符替换为b之后  "+buffer); 
  7.  
  8.     // 输出结果 
  9.     // ↓↓↓ 
  10.     // 获取第2个字符e 
  11.     // 将第二个字符替换为b之后 Hbllo 


6、getChars()

使用getChars( )方法将StringBuffer的子字符串复制给数组

  1. void getChars(int sourceStart, int sourceEnd, char target[ ], int targetStart)  


7、append()

 

append( ) 方法将任一其他类型数据的字符串形式连接到调用StringBuffer对象的后面。对所有内置的类型和Object,它都有重载形式

  1. StringBuffer append(String str)  
  2. StringBuffer append(int num)  
  3. StringBuffer append(Object obj)  

 


8、 insert()

insert( )方法将一个字符串插入另一个字符串中

  1. StringBuffer insert(int index, String str)  
  2. StringBuffer insert(int index, char ch)  
  3. StringBuffer insert(int index, Object obj) 

例子:

  1. public static void main(String[] args) { 
  2.     StringBuffer buffer = new StringBuffer("Hello"); 
  3.  
  4.     // 在第2个字符前加上字符 n 
  5.     buffer.insert(1'n'); 
  6.     System.out.println(buffer); 
  7.  
  8.     // 输出结果 
  9.     // ↓↓↓ 
  10.     // Hnello 

9、reverse()

可以使用reverse( ) 方法将StringBuffer对象内的字符串翻转

  1. StringBuffer reverse( )  

例子:

  1. public static void main(String[] args) { 
  2.     StringBuffer buffer = new StringBuffer("Hello"); 
  3.     System.out.println(buffer.reverse()); 
  4.  
  5.     // 输出结果 
  6.     // ↓↓↓ 
  7.     // olleH 

10、delete()和deleteCharAt() 

  1. StringBuffer delete(int startIndex, int endIndex)  
  2. StringBuffer deleteCharAt(int loc) 

delete( )方法从调用对象中删除一串字符,要删除的子字符串从startIndex 到endIndex–1

deleteCharAt( )方法删除由loc指定下标处的字符

例子:

  1. public static void main(String[] args) { 
  2.     StringBuffer buffer = new StringBuffer("Hello"); 
  3.  
  4.     System.out.println(buffer.delete(02)); 
  5.     buffer = new StringBuffer("Hello"); 
  6.     System.out.println(buffer.deleteCharAt(0)); 
  7.  
  8.     // 输出结果 
  9.     // ↓↓↓ 
  10.     // llo 
  11.     // ello 

11、replace( ) 

 

在StringBuffer内部用一组字符代替另一组字符

  1. StringBuffer replace(int startIndex, int endIndex, String str)  
  2. //被替换的子字符串由下标startIndex 和endIndex 指定。因此从startIndex 到endIndex-1 的子字符串被替换。 

 

Demo:

  1. public static void main(String[] args) { 
  2.     StringBuffer buffer = new StringBuffer("Hello"); 
  3.     System.out.println(buffer.replace(02"abc")); 
  4.  
  5.     // 输出结果 
  6.     // ↓↓↓ 
  7.     // abcllo 

12、substring()

返回StringBuffer的一部分值

 

  1. String substring(int startIndex)  
  2. String substring(int startIndex, int endIndex) 
  3.  
  4. //第一种形式返回调用StringBuffer对象中从startIndex 下标开始直至结束的一个子字符串。 
  5. //第二种形式返回从startIndex 开始到endIndex–1 结束的子字符串。 
  1. public static void main(String[] args) { 
  2.     StringBuffer buffer = new StringBuffer("Hello"); 
  3.  
  4.     System.out.println(buffer.substring(2)); 
  5.     System.out.println(buffer.substring(1, 2)); 
  6.  
  7.     // 输出结果 
  8.     // ↓↓↓ 
  9.     // llo 
  10.     // e