首页 > 代码库 > StringBuffer类

StringBuffer类

String类表示的字符串是定长的,而StringBuffer类提供了可变长的字符串,同时还提供了大量的字符串功能。在StringBuffer类的字符串中可以再插入字符,此时,StringBuffer会自动增加内存空间,这在String中是无法做到的。

1、构造函数:

      StringBuffer();   采用默认的构造函数,会给字符串预留16个字符空间

      StringBuffer(int buffersize);  buffersize用来设置缓冲区的大小

      StringBuffer(String str);  str用来初始化StringBuffer中的内容

2、长度运算:

      length()方法用来得到字符串的长度,capacity()用来得到分配给字符串的容量,它通常比实际字符要预留更多的空间,以允许增加字符。

      如果初始化了字符串后,要更改缓冲区大小可用ensureCapacity()方法,这样可以为新增字符串预先分配空间,因为再分配空间的代价是比较大的,而且频繁的分配空间会产生碎片。ensureCapacity的格式如下:

      void ensureCapacity(int capacitysize); 其中,capacitysize参数用来指定缓冲区的大小。

      要改变字符串的长度可用setLength()方法,其格式如下:

      void setLength(int length);其中,参数length指出了要设置的字符串的长度,如果length长度大于原长度,则在新加入长度的空间中设为空格,如果length长度小于原长度,则字符串后面小于原长度部分的字符串将会丢失,使用此方法时要特别注意这一点。

3、获取与修改字符:

      使用charAt()方法可从StringBuffer类的字符串中获取指定的字符;通过setCharAt()方法可以修改StringBuffer类字符串中指定的字符。其格式如下:

      char charAt(int position); position指出了要获取的字符在字符串中的下标

      void setCharAt(int position,char ch); position是要更改的字符的下标,ch是更改后的字符。

4、获取子字符串:

      用getChars()方法把StringBuffer中的子字符串复制给一个数组,格式如下:

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

      参数sourceStart是StringBuffer中要提取的字符串开始的下标;参数sourceEnd是结束的下标;target[]是接收子字符串的字符数组;targetStart是开始接收数组的下标。

      注意:使用此方法一定要确保target[]数组的长度足够长,以容纳子字符串的内容。

      另外,substring()方法也可用于获取StringBuffer的一部分,其调用形式如下:

      String substring(int startPosition); 用于返回从startPosition开始到末尾的子字符串;

      String substring(int startPosition,int endPosition); 用于返回从startPosition开始到下标endPosition结束的子字符串。

5、追加字符或字符串:

      在StringBuffer尾部追加字符或字符串可使用方法append(),调用的方法有多种,统一表述如下:

      StringBuffer append(Object obj);  其中,obj可以是任意类型,比较常用的是一些简单数据类型以及String类,该方法返回追加后的StringBuffer。

6、插入字符:

      用inset()方法可将一个字符串插入到另一个字符串中。常用的有:

      StringBuffer insert(int insertIndex,char ch);用来在insertIndex处插入一个字符ch

      StringBuffer insert(int insertIndex,String str); 用来在insertIndex处插入一个字符串str。

7、字符串翻转:

      要实现StringBuffer字符串的翻转可用方法reverse(),其格式如下:

      StringBuffer reverse();  返回翻转后的字符串

8、删除字符和字符串:

      删除字符和字符串的方法有两种,如下:

      StringBuffer delete(int startPosition,int endPosition); delete()用于删除从startPosition下标开始到endPosition下标结束的字符串,返回删除后的StringBuffer对象

      StringBuffer deleteCharAt(int deletePosition); deleteCharAt()用于删除位于deletePosition下标处的字符,返回删除后的StringBuffer对象。

9、替换字符串:

      方法replace()完成用一个字符串取代StringBuffer中的部分字符串的功能。

      StringBuffer replace(int startPosition,int endPosition,String str);该方法把StringBuffer中从下标startPosition处开始到下标endPosition处结束的字符串替换为str,返回替换后的StringBuffer对象。