JAVA.long.StringBuffer/Builder类

StringBuffer

优势(相对于String):
字符序列可变(字符串缓冲区)
即:增删改,在当前字符的对象上变化,不会浪费过多空间(原地增减)

构造方法

StringBuffer()默认是16个字符
StringBuffer(int size)size个字符
StringBuffer(String s)默认是max(16,s.length() );

容量不足时,系统自动维护。
维护规则: MAX(字符新长度,原容量*2+2)

常用方法

基础

int capacity();//字符串缓冲区容量
int length();//字符串长度

增删改查
注意:返回值都是:原StringBuffer

//增加
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

与StringBuffer拥有相同的构造方法和成员方法

与StringBuffer区别:

  • StringBuffer类将字符串缓冲区安全的用于 多个线程(线程安全)。为了保证线程安全,系统开销不比较大。
  • StringBuilder类的对象不具有线程安全性,对字符串的操作执行速度快。
posted @ 2021-11-06 15:25  kingwzun  阅读(68)  评论(0编辑  收藏  举报