org.springframework.util.StringUtils字符替换方法解析

网上已经有很多类似的,写上一篇属于自己的理解。

先上源码:


整体分为3部分

1. 验证参数

(1) 参数为空返回inSring

(2) 获取要oldPattern第一次出现位置,没有出现过返回inSring

2. 初始化StringBuilder(线程不安全,高效)

(1) 获取初始化StringBuilder长度

① 读取inString长度记为index

② newpattern长度大于oldpattern index16

注:+16为了可以直接存放下替换后的字符串,节省一次StringBuilder扩容操作

为什么加16而不是算出精确字符个数

个人理解:1.通常替换字符串长度都不会超出16字符,2.超过16字符再去算出扩容的精确大小,过于麻烦,还不如直接进行StringBuilder扩容操作

3. 循环index进行截取拼接等操作

 

扩展内容:

StringBuilder扩容

尝试将新容量扩为大小变成2+2   if 判断一下 容量如果不够,直接扩充到需要的容量大小;

详情请查看 http://www.cnblogs.com/Coffee-guy/p/3392264.html 


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值