为了账号安全,请及时绑定邮箱和手机立即绑定

java的split分割的问题

java的split分割的问题

小熊熊HELLO 2017-12-17 17:32:40
为什么是长度是4?不应该是3吗?   求大佬解答,不胜感激。。。
查看完整描述

3 回答

?
Steven_zhao

TA贡献6条经验 获得超3个赞

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)
查看完整回答
2 反对 回复 2017-12-17
?
产品经理不是经理

TA贡献481条经验 获得超143个赞

//img1.sycdn.imooc.com//5a364d940001754403730158.jpg

结果长度为4。包括a和a之间的空串。

查看完整回答
反对 回复 2017-12-17
?
产品经理不是经理

TA贡献481条经验 获得超143个赞

你都打印出来了啊,不是四个吗

查看完整回答
反对 回复 2017-12-17
  • 3 回答
  • 0 关注
  • 2348 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信