split()函数
split()函数2个参数的意义
public String[] split(String regex, int limit)
- regex – 正则表达式分隔符。
- limit – 分割的份数。
返回值是一个字符串的数组
第一个参数:
使用单个字符进行分割
举个例子
String str = "one two three, four";
String[] tokens = str.split(" ");
System.out.println("个数:"+tokens.length);
for (String s: tokens)
System.out.println(s);
这个例子中,我们用了split函数中的第一个参数,我们用空格(“ ”),进行分割,所以这段代码的结果如下:
运行结果:
特殊情况 下面12种字符需要转义才能当作分隔符, 用的是正则表达式的语法
[ ( ) { ^ $ . * + ? | \
如果以[为分隔符,split的时候需要加上两个反斜杠进行转义,不能直接使用str.split("["),
"\\" 首先转成 "\" ,然后后面加一个 "[" 组成 "\[" 字符串,这个字符串符合java正则表达式的语法,才能正确解析。下面都是如此
String[] tokens = str.split("\\[");
String[] tokens = str.split("\\(");
String[] tokens = str.split("\\)");
String[] tokens = str.split("\\{");
String[] tokens = str.split("\\^");
String[] tokens = str.split("\\$");
String[] tokens = str.split("\\.");
String[] tokens = str.split("\\*");
String[] tokens = str.split("\\+");
String[] tokens = str.split("\\?");
String[] tokens = str.split("\\|");
String[] tokens = str.split("\\\\"); 这个特殊些,需要 "\\\\" 表示 "\" 进行分割,同时被分割的字符串也是 "\\" 才表示一个 "\"
使用多个字符进行分割
如果我们想用两个分割符进行分割,即 想用空格(" “)分割,也想用逗号(”,")分割,我们可以用 “|” 来使其实现,下面看一个例子:
String str = ",one,,tw,o th,,,,";
String[] tokens = str.split(" |,");
System.out.println("个数:"+tokens.length);
for (String s: tokens)
System.out.println(s);
结果如下:
注意:如果把空字符串 ("") 用作 separator,那么 字符串 中的每个字符之间都会被分割。
第二个参数:
第二个参数是分割的份数,举个例子:
String str = "one two three four";
String[] tokens = str.split(" ",2);
for (String s: tokens)
System.out.println(s);
结果如下:
可以看出,由于多了第二个参数,结果发生了改变,是因为我们限制了分割的份数为2份,所以当分割结果达到2份时,分割就结束了。
发生了改变,是因为我们限制了分割的份数为2份(也可以理解为返回的数组最大元素个数),所以当分割结果达到2份时,分割就结束了。