split()方法介绍
方法原型:
public String[] split(String regex, int limit)
- regex -- 正则表达式分隔符。
- limit -- 分割的份数。
举例说明
String s1 = "a*good*example";
String[] s2 = s1.split("\\*"); //这块是转义字符的知识,具体可以仔细再了解
for (String s3 : s2) {
System.out.print(s3 + " ");
}
输出结果:a good example
上述的这个例子,很通俗易懂,就是将字符串以*分割(这些字符有特殊的函数 | , + , * , ^ , $ , / , | , [ , ] , ( , ) , - , . , \)如果想要使用这些字符作为分隔符,需要转义,例如想用 | 竖线去分割某字符,因 | 本身是正则表达式中的一部分,所以需要 \ 去转义,因转义使用 , 而这个 \ 正好也是正则表达式的字符,所以还得用一个 \ , 所以需要两个 \。更多的知识可以再详细了解。
但是使用这个函数有个陷阱,下面将举例:
String s1 = "a*good*******example";
String[] s2 = s1.split("\\*"); //这块是转义字符的知识,具体可以仔细再了解
System.out.println(s2.length)
for (String s3 : s2) {
System.out.println(s3);
}
如果分割符有多个是连在一块的,其他的分隔符被转变为了空字符串,此使通过输出字符串的内容发现不了,我们需要输出字符数组的长度。
此时大家可以看到,现在字符数组的长度是9,处理正常的三个单词之外,还有6个*被转化为了空字符串"“。所以大家一定要主要这个陷阱。
当然除了使用一个字符进行分割之外,我们也可以使用两个字符进行分割。比如说我们想实现使用” “和,进行分割,只需使用竖线|将两个分隔符分开就行。写法str.split(” |,")。
第二个参数的作用
第二个参数是分割的份数,我们来举个例子:
String str = "one two three four";
String[] tokens = str.split(" ",2);
for (String s: tokens)
System.out.println(s);
结果:
可以看出,由于多了第二个参数,结果发生了改变,是因为我们限制了分割的份数为2份,所以当分割结果达到2份时,分割就结束了。
部分结论
1.split(“s”) 以字符s为分隔线,分隔后返回字符数组;
2.split(“\s”)以碰到的每个空格、换行符、回车为分隔线,如遇到连续多个空格、换行符、回车就会连续划分,分隔后返回字符数组;
3.split(“\s+”)以空格、换行符、回车为分隔线,相邻的多个空格、换行符、回车仍然视为只有一个,分隔后返回字符数组。