Java 字符串之String.split()方法产生的数组长度和期望值不一样的探究?
来源:互联网 发布:淘宝上店铺获取失败 编辑:程序博客网 时间:2024/05/22 05:24
先看下面的方法,事先预测一下,经过split方法,按逗号进行分割为数组之后,生成的数组的长度是多少,目测很多人都觉得是7,但是结果却出乎意料。是4而不是7.
private static void testSplit() { String ss = "aa,sas,sasa,sasas,,,"; String[] array = ss.split(","); System.out.println(array.length);//结果是4,而不是预想中的7 for (int i = 0; i < array.length; i++) { System.out.println(array[i]); } }
可以看到,结果真的是4而不是我们猜的7,这是为什么呢?
原因解析:
点进去看源码,debug一下,如下图:
可以看到,刚刚开始的时候,确实是有7个分割出来的东西存在,有三个是空字符串,""。不是null。不用担心空指针异常。
然后 看到下面的继续走,if语句,就看到,他把这个list从尾部开始判断,如果这个list的后面的字符串的长度是0,那么这个resultSize就 减减,然后一直while循环,
知道不符合条件,那么list的下标是456的值就被抛弃了,然后新生的结果字符串数组,的大小就变成加工过后的长度,那么就变成了长度 4的数组。
list.subList(0, resultSize).toArray(result)
就是这句话啦。
他只是处理后面尾部的空字符串,不处理中间的空字符串。
知道这个原理之后,那么这个 问题以后怎么变,你都了然于胸啦。
1 0
- Java 字符串之String.split()方法产生的数组长度和期望值不一样的探究?
- java String.split 分割字符串的方法
- java中的String.split() 中“|”作为分隔符的问题和数组长度问题
- java中的String.split() 中“|”作为分隔符的问题和数组长度问题
- java中的String.split() 中“|”作为分隔符的问题和数组长度问题
- java中的String.split() 中“|”作为分隔符的问题和数组长度问题
- java中的String.split() 中“|”作为分隔符的问题和数组长度问题
- Java String的contains()和split()方法
- string.split(String,limit)方法产生空字符串的问题分析
- java中String和数组的长度
- java中split()方法分割字符串后数组长度问题
- 不依赖java的:String.split方法分割字符串
- Java中分割字符串的方法--String.split()
- Java数组和字符串的长度计算
- string字符串的Split方法 的应用
- Java中取得数组(array),集合(Collection)和字符串(String)的长度
- Java和JS中String、数组长度的求法
- String 的split()方法
- 水平划分和垂直划分
- .NET导出Gridview到excel 带模板列显示(未验证)
- ios layer.mask
- Python base64编码
- git学习--commit-msg缺失导致的missing Change-Id问题分析
- Java 字符串之String.split()方法产生的数组长度和期望值不一样的探究?
- Mac 模拟慢速网络
- 静态或者全局智能指针使用的注意几点
- Android中使用Parcelable实现对象的序列化
- 微信公众号运营心得
- 【设计模式】【七】装饰模式
- psd切图和简易雪碧图制作
- linux之用wget下sublime简单使用总结
- SSM框架——详细整合教程(Spring+SpringMVC+MyBatis)