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);
        }
        
如果分割符有多个是连在一块的,其他的分隔符被转变为了空字符串,此使通过输出字符串的内容发现不了,我们需要输出字符数组的长度。

Line类的声明和实现java line.split()函数 java_换行符


此时大家可以看到,现在字符数组的长度是9,处理正常的三个单词之外,还有6个*被转化为了空字符串"“。所以大家一定要主要这个陷阱。

当然除了使用一个字符进行分割之外,我们也可以使用两个字符进行分割。比如说我们想实现使用” “和,进行分割,只需使用竖线|将两个分隔符分开就行。写法str.split(” |,")。

第二个参数的作用
第二个参数是分割的份数,我们来举个例子:

String str = "one two three four";
        String[] tokens = str.split(" ",2);
        for (String s: tokens)
            System.out.println(s);

结果:

Line类的声明和实现java line.split()函数 java_java_02


可以看出,由于多了第二个参数,结果发生了改变,是因为我们限制了分割的份数为2份,所以当分割结果达到2份时,分割就结束了。

部分结论
1.split(“s”) 以字符s为分隔线,分隔后返回字符数组;
2.split(“\s”)以碰到的每个空格、换行符、回车为分隔线,如遇到连续多个空格、换行符、回车就会连续划分,分隔后返回字符数组;
3.split(“\s+”)以空格、换行符、回车为分隔线,相邻的多个空格、换行符、回车仍然视为只有一个,分隔后返回字符数组。