String Buffer & String Builder
当需要对字符串进行大量修改时,使用StringBuffer和StringBuilder类。
与字符串不同,StringBuffer和String构建器类型的对象可以反复修改,而不会留下大量新的未使用对象。
StringBuilder类是从Java 5开始引入的,StringBuffer和StringBuilder之间的主要区别在于StringBuilders方法不是线程安全的(不同步)。
建议尽可能使用StringBuilder因为它比StringBuffer更快。 但是,如果需要线程安全性,则最好的选项是StringBuffer对象。
例子 (Example)
public class Test {
public static void main(String args[]) {
StringBuffer sBuffer = new StringBuffer("test");
sBuffer.append(" String Buffer");
System.out.println(sBuffer);
}
}
这将产生以下结果 -
输出 (Output)
test String Buffer
StringBuffer方法
以下是StringBuffer类支持的重要方法列表 -
Sr.No. | 方法和描述 |
---|---|
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 。 |
5 | replace(int start,int end,String str) 此方法将此StringBuffer的子字符串中的字符替换为指定String中的字符。 |
以下是与String类非常相似的其他方法(set方法除外)的列表 -
Sr.No. | 方法和描述 |
---|---|
1 | int capacity() 返回String缓冲区的当前容量。 |
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) 设置此String缓冲区的长度。 |
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() 转换为表示此字符串缓冲区中数据的字符串。 |