概述
如果要对字符串进行拼接操作,每次拼接,都会构建一个新的String对象,既耗时,又浪费空间,而StringBuffer可以解决这个问题,是线程安全的可变字符序列
构造方法
public StringBuffer();
public StringBuffer(int capacity): 指定容量的字符串缓冲区对象
public StringBuffer(String str): 指定字符串内容的字符串缓冲区对象
各种功能
1、添加功能
public StringBuffer append(String str): 可以把任意类型数据添加到字符串缓冲区里面,并返回字符串缓冲区本身
public StringBuffer insert(int offset,String str):在指定位置把任意类型的数据插入到字符串缓冲区里面,并返回字符串缓冲区本身
2、删除功能
public StringBuffer deleteCharAt(int index):删除指定位置的字符,并返回本身
public StringBuffer delete(int start,int end):删除从指定位置开始指定位置结束的内容,并返回本身
3、替换和反转功能
public StringBuffer replace(int start,int end,String str): 从start开始到end用str替换
public StringBuffer reverse(): 字符串反转
4、检索功能
int indexOf(String str) 返回第一次出现的指定子字符串在该字符串中的索引。
int indexOf(String str, int fromIndex) 从指定的索引处开始,返回第一次出现的指定子字符串在该字符串中的索引。
int lastIndexOf(String str) 返回最右边出现的指定子字符串在此字符串中的索引。
int lastIndexOf(String str, int fromIndex) 返回最后一次出现的指定子字符串在此字符串中的索引。
5、截取功能
public String substring(int start): 从指定位置截取到末尾
public String substring(int start,int end): 截取从指定位置开始到结束位置,包括开始位置,不包括结束位置
注意事项:返回值类型不再是StringBuffer本身
StringBuffer和String的相互转换
1、String转为StringBuffer
a、通过构造方法
String a = "abc";
StringBuffer sb=new StringBuffer(a);
b、通过append方法
String a = "abc";
StringBuffer sb=new StringBuffer();
sb.append(a);
2、StringBuffer转为String
a、使用substring方法
StringBuffer sb=new StringBuffer("abv");
String s = sb.substring(0);//从索引0截取到末尾
b、通过构造方法
StringBuffer sb=new StringBuffer("abv");
String s = new String(sb);
c、通过toString()方法
StringBuffer sb=new StringBuffer("abv");
String s = sb.toString();