浅谈String类的split(String regex)方法
先来个例子
String str = "--24-56--";
String[] split = str.split("-");
for (String s : split)
System.out.println(s);
大家觉得split的长度是多少呢?
正确答案是:长度为4
split = {String[4]@625}
0 = “”
1 = “”
2 = “24”
3 = “56”
是不是有点不理解,查看源码后发现:
int resultSize = list.size();
if (limit == 0) {
while (resultSize > 0 && list.get(resultSize - 1).length() == 0) {
resultSize–;
}
}
String[] result = new String[resultSize];
return list.subList(0, resultSize).toArray(result);
切割后的字符串集合会从后向前遍历,如果元素长度为0则向前移位,直到元素长度不为0,将前面的元素toArray,得到最终数组。