比String组拼好使的StringBuffer,stringBuilder 讲解

String与StringBuffer的区别

string:组拼的时候要产生新的对象,把两个string对象里的数据赋值相加到一个新的string中。string(赋值后不能修改)

stringBuffer:组拼的过程不需要创建新的对象,只会在内存开辟一块内存空间,内存使用要由于String类,在实际操作中,经常要对字符串进行修改,例如插入,删除等。

对比:StringBuffer 使用操作上方便,在内存使用比较好。

String, StringBuffer和StringBuilder

(1) String字符串的构造(一旦被赋值不能被修改)

(2) StringBuffer和StringBui lder可以创建一个可以被修改的字符串

(3)使用起来基本相同

(4)不同: StringBuffer线程安全,但是性能略低。StringBui lder线程不安全但是性能略高。(什么是线程安全)

(5)字符串的存储,在内存里面JDK9之前使用char数组存储, JDK9里面使用byte数组存储。

 

StringBuffer常用方法(stringBuilder类似)

1. append():追加字符串到末尾。

     如果StringBuffer已经存满,那么重新开辟内存空间。(大小是当前储存大小的二倍,或者两个相加的大小。不用管)

StringBuffer s1=new StringBuffer("www");
s1.append("aaa");
//输出wwwaaa

2. deleteCharAt():删除指定索引的字符串

    StringBuffer sb = new StringBuffer(“Test”);
    sb. deleteCharAt(1);
    对象sb的值变为”Tst”

3. delete(int start,int end)
该方法的作用是删除指定区间以内的所有字符。

StringBuffer sb = new StringBuffer(“TestString”);
sb. delete (1,4);
”TString”

4. insert  (int offset,string s)

该方法的作用是在StringBuffer对象中插入内容,然后形成新的字符串

StringBuffer sb = new StringBuffer(“TestString”);
sb.insert(4,“false”);
sb的值是”TestfalseString”。

5. reverse()
该方法的作用是将StringBuffer对象中的内容反转,然后形成新的字符串。

StringBuffer sb = new StringBuffer(“abc”);
sb.reverse();
经过反转以后,对象sb中的内容将变为”cba”。

6. setCharAt(int index, char ch)
该方法的作用是修改对象中索引值为index位置的字符为新的字符ch。


StringBuffer sb = new StringBuffer(“abc”);
sb.setCharAt(1,’D’);
则对象sb的值将变成”aDc”。

7. trimToSize()
该方法的作用是将StringBuffer对象的中存储空间缩小到和字符串长度一样的长度,减少空间的浪费。

8. 构造方法:


StringBuffer s0=new StringBuffer();分配了长16字节的字符缓冲区
StringBuffer s1=new StringBuffer(512);分配了512字节的字符缓冲区

9. 获取字符串的长度: length()


StringBuffer s = new StringBuffer("www");
int i=s.length();        //结果是3

10. subString(int start);subString(int start,int end);

m.返回字符串的一部分值


substring(int start) //返回从start下标开始以后的字符串
substring(int start,int end) //返回从start到 end-1字符串

11. replace(int start,int end,String str):替换字符串

StringBuffer s = new StringBuffer("www");
s.replace(0,1,"qqq");   //s中的值:qqqww

12. toString()  :将stringBuffer 转换成string

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值