A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

昨天回答一个问题时,涉及到String类的split(String regex)方法,这个方法实现是调用的split(String regex,int limit)方法且limit为0. 所以查了点资料,解释这个方法.

下面是api里的解释:

limit 参数控制模式应用的次数,因此影响所得数组的长度。如果该限制 n 大于 0,则模式将被最多应用 n - 1 次,数组的长度将不会大于 n,而且数组的最后一项将包含所有超出最后匹配的定界符的输入。如果 n 为非正,那么模式将被应用尽可能多的次数,而且数组可以是任何长度。如果 n 为 0,那么模式将被应用尽可能多的次数,数组可以是任何长度,并且结尾空字符串将被丢弃。

例如,字符串 "boo:and:foo" 使用这些参数可生成以下结果:
Regex        Limit                        结果
:                2                        { "boo", "and:foo" }
:                5                        { "boo", "and", "foo" }
:                -2                        { "boo", "and", "foo" }
o                5                        { "b", "", ":and:f", "", "" }
o                -2                        { "b", "", ":and:f", "", "" }
o                0                        { "b", "", ":and:f" }

对limit为负还是有点不理解,尤其是对 o -2组合,



现在我明白了,{ "b", "", ":and:f", "", "" } 第一个“”是因为两个o之间的空数据,第二个也是这个原因,最后一个是将"boo:and:foo"中最后空字符串也算进去的

1 个回复

倒序浏览
我来占层楼啊   
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马