我从文档中了解到的内容:
limit参数控制模式出现的次数
应用并因此影响结果数组的长度。如果
限制 n 大于零,则该模式将应用于
最多 n - 1 次,数组的长度将不大于 n,并且
数组的最后一个条目将包含最后一个匹配之外的所有输入
分隔符。如果 n 为非正数,则该模式将应用为
尽可能多次,并且数组可以具有任意长度。如果 n 为零
那么该模式将被应用尽可能多次,数组
可以有任意长度,尾随的空字符串将被丢弃。
这意味着在字符串 s 上设计或削减它到 n 次,所以让我们一一分析以更好地理解:
Limit 1
String[] spl1 = str.split("o", 1);
这意味着将其分开或仅在绳子上的一根绳子上切割o
在这种情况下,您将获得所有输入:
[boo:and:foo]
1
Limit 2
String[] spl1 = str.split("o", 2);
这意味着剪一次o
所以我先休息一下o
boo:and:foo
-----^
在这种情况下你会得到两个结果:
[b,o:and:foo]
1 2
Limit 3
String[] spl1 = str.split("o", 3);
这意味着第一次要剪两次o
第二个o
boo:and:foo
1----^^--------------2
在这种情况下,您将得到三个结果:
[b, ,:and:foo]
1 2 3
Limit 4
String[] spl1 = str.split("o", 4);
这意味着在第一、第二、第三次剪三次o
boo:and:foo
1_____^^ ^
|___2 |___3
在这种情况下,您将得到四个结果:
[b, ,:and:f,o]
1 2 3 4
Limit 5
String[] spl1 = str.split("o", 5);
这意味着在第一、第二、第三和第四次剪四次o
boo:and:foo
1_____^^ ^^
|___2 ||___4
|____3
在这种情况下,您将得到五个结果:
[b, ,:and:f, , ]
1 2 3 4 5
只是一个简单的动画来了解更多: