首页 > 代码库 > java split(regex)和split(regex, limit)方法的使用技巧

java split(regex)和split(regex, limit)方法的使用技巧

在java字符串方法中有一个非常好用的方法split(),该方法可以把字符串直接分割为数组此方法有两个重载。

一是:split(regex),参数为要分隔的字符串或者正则表达式。

二是:ss.split(regex, limit)。此方法可以的第二个参数一般不太常用,

这两个方法api给的解释是:limit 参数控制模式应用的次数,因此影响所得数组的长度。如果该限制 n 大于 0,则模式将被最多应用 n - 1 次,数组的长度将不会大于 n,而且数组的最后一项将包含所有超出最后匹配的定界符的输入。如果 n 为非正,那么模式将被应用尽可能多的次数,而且数组可以是任何长度。如果 n 为 0,那么模式将被应用尽可能多的次数,数组可以是任何长度,并且结尾空字符串将被丢弃。

两个方法的区别是split(regex)返回变长的数组,就是可以分割为多少项就返回多长的数组

比如:代码1

	String ss = ",,";
	String sss[] = ss.split(",");
	System.out.println(sss.length);//返回数组长度为0,自动去除尾部为空的字符串

代码2

	String ss = ",,3";
	String sss[] = ss.split(",");
	System.out.println(sss.length);//返回数组长度为3,前面空不自动去除
代码3

	String ss = "1,2,";
	String sss[] = ss.split(",");
	System.out.println(sss.length);//返回数字长度3


ss.split(regex, limit)这个方法返回的数组长度最多为limit

比如:代码1

	String ss = "1,,";
	String sss[] = ss.split(",",3);
	System.out.println(sss.length);//返回数组长度3,不会自动去掉尾部

代码2

	String ss = "1,,5,6";
	String sss[] = ss.split(",",3);
	System.out.println(sss.length);//返回数组长度3,后面的5,6会被合并为一项

代码3

	String ss = "1,";
	String sss[] = ss.split(",",3);
	System.out.println(sss.length);//返回长度为2,后面空不会被去掉


这样是不是两个方法的区别就非常明显了