Steven_zhao
split核心代码
boolean matchLimited = limit > 0;
Matcher m = matcher(input);
// Add segments before each match found
while(m.find()) {
if (!matchLimited || matchList.size() < limit - 1) {
String match = input.subSequence(index, m.start()).toString();
matchList.add(match);
index = m.end();
} else if (matchList.size() == limit - 1) { // last one
String match = input.subSequence(index,
input.length()).toString();
matchList.add(match);
index = m.end();
}
}
123a456aa789的split截取[a]相当于
第一次:subString(0,3)
第二次:subString(4,7)
第三次:subString(8,8) 由于是开始和结束相同,如果参数 start 与stop 相等,那么该方法返回的就是一个空串
第四次:subString(9,12)