StringBuffer 和 StringBuilder 类在需要对字符串进行大量修改时使用。
与字符串不同,可以不停地修改StringBuffer和String builder类型的对象,而不会留下很多新的未使用对象。
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.out.println(sBuffer); } }
这将产生以下输出-
输出
test String Buffer
StringBuffer方法
这是StringBuffer类支持的重要方法的列表-
Sr.No. | Methods & Description |
---|---|
1 |
public StringBuffer append(String s)
更新调用该方法的对象的值。该方法采用布尔值,char,int,long,String等。 |
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)
此方法用指定String中的字符替换此StringBuffer的子字符串中的字符。 |
这是与String类非常相似的其他方法(set方法除外)的列表-
Sr.No. | Method & Description |
---|---|
1 |
int Capacity() 返回字符串缓冲区的当前容量。 |
2 |
char charAt(int index) 返回由index缓冲区指示的当前由字符串缓冲区表示的序列的指定字符。 |
3 |
避免sureCapacity(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(整数开始,整数结束) 返回一个新的字符序列,该序列是该序列的子序列。 |
13 |
字符串子字符串(以int开头) 返回一个新的String,该字符串包含当前包含在此StringBuffer中的字符的子序列。子字符串从指定的索引开始,并延伸到StringBuffer的末尾。 |
14 |
字符串子字符串(整数开头,整数结尾) 返回一个新的String,该字符串包含当前包含在此StringBuffer中的字符的子序列。 |
15 |
字符串toString() 转换为表示该字符串缓冲区中数据的字符串。 |