在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,后面空不会被去掉
这样是不是两个方法的区别就非常明显了
java split(regex)和split(regex, limit)方法的使用技巧
时间: 2024-10-11 12:08:07