Java 高级编程——Java常用类---字符串相关的类——StringBuffer、StringBuilder

1.1String、StringgBuffer、StringBuilder的异同

StringStringBufferStringBuilder
不可变的字符序列 可变字符序列,线程安全,效率低 可变的字符序列,线程不安全,效率高
底层使用char型数组存储底层使用char型数组存储底层使用char型数组存储

StringBuilder只是操作(拼接,修改)字符串的手段,早操作完成后还是用toStirng方法还原成字符串

1.1.1源码分析

String:
String str = new String();:char[] value = new char[0]
String str = new String("abc"):char[] value = new char[]{‘a’,‘b’,‘c’}

StringBuffer、StringBuilder:
StringBuffer sb1 = new StringBuffer();:cahr[] value = new char[16];*底层创建了一个长度时16的char型数组
sb1.append('a');:value[0] = ‘a’;
StringBuffer sb = new StringBuffer("abc");:char[] value = new char[“abc”.length+16]

1.1.2扩容问题

如果要添加的数据底层数组存不下了,那就需要扩容底层的数组。默认情况下,扩容为原来的容量的2倍+2,同时将原有数组中的元素复制到新的数组中

1.2 StringBuffer、StringBuilder中的常用方法

  • 增 StringBuffer append(xxx):字符串连接,返回StringBuffer
  • 删 StringBuffer delete(int start,int end):删除指定位置内容
  • 改 StringBuffer replace(int start, int end ,String str):把[start,end)位置替换为str
  • StringBuffer insert(int offset,xxx):在指定位置插入xxx
  • 反转StringBuffer reverse:把当前字符序列逆转
  • indexOf(String str)lengthcharAt(int n)setCharAt(int n,char ch)
  • 遍历:for + charAt()/toString
  • public StringBuilder append(anyType) :拼接数据并返回StringBuilder对象本身
  • public int length() :返回对象内容长度
  • public String toString():通过toString实现把StringBuilder转换为String。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值