StringBuffer
优势:
字符序列可变(字符串缓冲区)
即:增删改,在当前字符的对象上变化,不会浪费过多空间
构造方法
StringBuffer()
默认是16个字符StringBuffer(int size)
size个字符StringBuffer(String s)
默认是max(16,s.length() );
容量不足时,系统自动维护。
维护规则: MAX(字符新长度,原容量*2+2)
常用方法
增删改查
//增加
StringBuffer append(... ...);//追加数据
StirngBuffer inser(int index,... .. );//将数据插入到指定的位置
//删除
StringBuffer deliete(int startindex ,int endindex);//从当前对象字符串中删除一段字符串
StringBuffer deleteCharAt(int index);//删除指定位置的字符
//修改
StringBuffer replace(int startIndex,int endIndex,String str)//c把当前对象中的一个字符串替换成指定的字符串
void setCharAt(int index,char ch)//将指定位置的字符替换成ch
//查询
getChars(int srcBegin,int srcEnd,char[] dst,int dstBegin)//将字符从次序列复制到目标字符数组dst
indexOf
lastIndexOf
substring
其他
reverse();//反转
trimToSize();//将缓存区容量改为当前字符串的容量
toString();
与String的转换
//StringBuffer->String
String (StringBuffer buffer);//构造方法
toString();//方法
//String->StringBuffer
StringBuffer(String str);/构造方法
与StringBuilder比较
相同:
2个类拥有相同的构造方法和成员方法
区别:
- StringBuffer类将字符串缓冲区安全的用于 多个线程(线程安全)。为了保证线程安全,系统开销不比较大。
- StringBuilder类的对象不具有线程安全性,对字符串的操作执行速度快。