您的位置:首页 > 编程语言 > Java开发

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

2018-03-17 19:50 435 查看
网上已经有很多类似的,写上一篇属于自己的理解。
先上源码:



整体分为3部分
1. 验证参数
(1) 参数为空返回inSring
(2) 获取要oldPattern第一次出现位置,没有出现过返回inSring
2. 初始化StringBuilder(线程不安全,高效)
(1) 获取初始化StringBuilder长度
① 读取inString长度记为index
② 当newpattern长度大于oldpattern index加16
注:+16为了可以直接存放下替换后的字符串,节省一次StringBuilder扩容操作
为什么加16而不是算出精确字符个数
个人理解:1.通常替换字符串长度都不会超出16字符,2.超过16字符再去算出扩容的精确大小,过于麻烦,还不如直接进行StringBuilder扩容操作
3. 循环index进行截取拼接等操作
 扩展内容:
StringBuilder扩容尝试将新容量扩为大小变成2倍+2   if 判断一下 容量如果不够,直接扩充到需要的容量大小;详情请查看 http://www.cnblogs.com/Coffee-guy/p/3392264.html 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java Spring
相关文章推荐