string删除指定位置字符_可变字符序列:字符串缓冲区

StringBuffer、StringBuilder、String的区别

v2-af7113445ccb6e09dc4e590d8fa59fa4_b.jpg

一个类似于 String 的字符串缓冲区,但能被修改。虽然在任意时间点上它都包含某种特定的字符序列,但通过某些方法调用可以改变该序列的长度和内容,所有对StringBuffer或StringBuilder对象的字符序列的修改不会产生新的StringBuffer或StringBuilder对象,这点和String很大的不同。

v2-46ff644ebe293072245a608cb353a987_b.jpg

1、value没有final声明,value可以不断扩容,count记录有效字符的个数。

2、StringBuilder:线程安全,效率低;StringBuffer:线程不安全,效率高

StringBuffer和StringBuilder不同的API

1、构造器

StringBuffer或StringBuilder对象的创建必须用new+构造器。

StringBuffer() 初始容量为16的字符串缓冲区

StringBuffer(int size) 构造指定容量的字符串缓冲区

StringBuffer(String str) 将内容初始化为指定字符串内容

2、和字符序列改变有关的方法

而且所有这些方法支持方法链

StringBuffer append(xx):提供了很多的append()方法,用于进行字符串拼接

StringBuffer delete(int start,int end):删除指定位置的内容

StringBuffer insert(int offset, xx):在指定位置插入xx

StringBuffer replace(int start, int end, String str):把[start,end)位置替换为str

StringBuffer reverse() :把当前字符序列逆转

v2-302e51cef105b8c4f1ca1a548fcb37ec_b.jpg

方法链的原理

v2-7b8930f4f811ea4bd3466187bd2fc5c4_b.jpg

当append和insert时,如果原来value数组长度不够,可扩容

v2-ae785144b90fb6eac7246b581cb0f649_b.jpg

效率测试

v2-eb9ab7d027ba79f0897b4990dc81e13e_b.jpg
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值