Java 字符串 StringBuffer 和 StringBuilder类
StringBuffer 和 StringBuilder 类用于需要对字符的字符串进行大量修改的情况。
与字符串不同,StringBuffer和StringBuilder类型的对象可以多次修改而不会留下许多新的未使用对象。
StringBuilder类是Java 5引入的,StringBuffer和StringBuilder之间的主要区别在于StringBuilder的方法不是线程安全的(不同步)。
建议尽可能使用 StringBuilder ,因为它比StringBuffer更快。但是,如果需要线程安全性,最好使用StringBuffer对象。
示例
public class Test {
public static void main(String args[]) {
StringBuffer sBuffer = new StringBuffer("test");
sBuffer.append(" String Buffer");
System.out.println(sBuffer);
}
}
这将产生以下结果:
输出
test String Buffer
StringBuffer方法
下面是StringBuffer类支持的重要方法列表−
序号 | 方法与描述 |
---|---|
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类非常相似的其他方法(除了设置方法)的列表 –
Sr.No. | Method & Description |
---|---|
1 | int capacity() 返回 String 缓冲区的当前容量。 |
2 | char charAt(int 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) 返回一个包含当前StringBuffer中当前包含的字符子序列的新String。子串从指定的索引开始,延伸到StringBuffer的结尾。 |
14 | String substring(int start, int end) 返回一个新的字符串,它包含当前StringBuffer中包含的字符的一个子序列。 |
15 | String toString() 转换为表示该字符串缓冲区中的数据的字符串。 |