字符串分割,属于比较常见的case了,在实际开发中,相信很多小伙伴会借助common-lang
工具包中的StringUtils
来实现,使用姿势也很简单
1 | String[] ans = StringUtils.split("a,b,c", ","); |
一般来讲上面这种使用方式没有问题,但是当分隔符前后为空时,需要特别注意,可能会和你预期的返回不一致
实例演示,xml依赖如下
1 | <dependency> |
一个实例代码如下
1 | public static void main(String[] args) { |
输出结果如
1 | ["a","b"] |
请注意,最后一个空白字符被忽略掉了,假设我们的字符串格式是固定的
形如:name:age:addr
当我们拿到一个字符串希望解析上面三个数据时,可能就会出现数组越界问题
特别是当字符串为 :10:
时,解析之后的数组长度只是1,这个时候可能就会有问题了
当出现上面这个场景时,可以借助StringUtils.splitByWholeSeparatorPreserveAllTokens
实测case如下
1 | public static void main(String[] args) { |
输出结果
1 | ["10"] |
小结
StringUtils#split
: 会忽略长度为0的字符串splitByWholeSeparatorPreserveAllTokens
: 会保留所有的字符串
II. 其他
1. 一灰灰Blog: https://liuyueyi.github.io/hexblog
一灰灰的个人博客,记录所有学习和工作中的博文,欢迎大家前去逛逛
2. 声明
尽信书则不如,以上内容,纯属一家之言,因个人能力有限,难免有疏漏和错误之处,如发现bug或者有更好的建议,欢迎批评指正,不吝感激
- 微博地址: 小灰灰Blog
- QQ: 一灰灰/3302797840
3. 扫描关注
一灰灰blog