Java StringBuffer & StringBuilder类
StringBuffer和StringBuilder类适用于有必要做大量的修改字符的字符串。
不同类型的StringBuffer和StringBuilder的字符串对象可以被修改了一遍又一遍用了留下了不少新的未使用的对象。
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.ou.println(sBuffer); } }
这将产生以下结果:
test String Buffer
StringBuffer 方法:
这里是由StringBuffer类支持的重要方法列表:
SN | 描述方法 |
---|---|
1 |
public StringBuffer append(String s) 更新调用该方法的对象的值。该方法接受 boolean, char, int, long, Strings 等。 |
2 |
public StringBuffer reverse() 该方法将反转调用该方法的StringBuffer对象的值。 |
3 |
public delete(int start, int end) 删除从起始索引开始直到结束索引的字符串。 |
4 |
public insert(int offset, int i) 此方法将一个字符串s 在所提到的offset位置。 |
5 |
replace(int start, int end, String str) 此方法取代字符,StringBuffer的一个子字符串在指定字符串中的字符。 |
下面是其他方法(除了set方法),它是非常相似的String类的方法:
SN | 方法描述 |
---|---|
1 |
int capacity() 返回字符串缓冲区的当前容量。 |
2 |
char charAt(int index) 目前由字符串缓冲区为代表,由index参数所指示的顺序指定的字符返回。 |
3 |
void ensureCapacity(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(int start, int end) 返回一个新的字符序列,这个序列的子序列。 |
13 |
String substring(int start) 返回一个新的String,它包含当前包含在这个StringBuffer的字符序列。该子字符串从指定的索引处,并延伸到StringBuffer的末尾。 |
14 |
String substring(int start, int end) 返回一个新的String,它包含当前包含在这个StringBuffer的字符序列。 |
15 |
String toString() 转换为代表该字符串缓冲区的数据的字符串。 |