关于 Java 的 split()
说明
函数原型:String[] split(String regex, int limit)
另一个 String[] split(String regex)
实际上是把第二个参数 limit
传入了 0
regex
:要匹配的正则表达式字符串
limit
:限制匹配的次数
具体匹配规则如下:
- 当
limit
为正时,最多匹配 limit-1
次,得到的结果数组长度不大于 limit
- 当
limit
为负时,尽可能多地去匹配
- 当
limit
为 0
时,尽可能多地去匹配,并把结果数组中末尾的空串都舍去。
以下为 split() 官方文档 给出的示例:
1 2 3 4 5 6 7
| String str = "boo:and:foo"; System.out.println(Arrays.toString(str.split(":", 2))); System.out.println(Arrays.toString(str.split(":", 5))); System.out.println(Arrays.toString(str.split(":", -2))); System.out.println(Arrays.toString(str.split("o", 5))); System.out.println(Arrays.toString(str.split("o", -2))); System.out.println(Arrays.toString(str.split("o", 0)));
|
另外,第一个参数 regex
是一个正则表达式字符串,某些特殊字符需要进行转义。如下所示,每行代码输出结果均为:[a, b]
1 2 3 4 5 6
| System.out.println(Arrays.toString("a.b".split("\\."))); System.out.println(Arrays.toString("a$b".split("\\$"))); System.out.println(Arrays.toString("a|b".split("\\|"))); System.out.println(Arrays.toString("a*b".split("\\*"))); System.out.println(Arrays.toString("a^b".split("\\^"))); System.out.println(Arrays.toString("a\\b".split("\\\\")));
|