第一种方式:
public static void main(String[] args) {
String str = ",,,,";
System.out.println("空格字符串:" + str.split(",").length);
System.out.println("空格字符串:" + str.split(",", -1).length);
}
查看结果发现两种方式得出来的结果不一样,正常情况下,我们一般都是第一种分割方式,得出来的数组值是空,数组长度为0;
第二种分割方式是分割时使用, 一个limit来限定分割的结果,得出来的结果数组长度为5,这就是我们分割连续逗号字符串(全部是空格数组)。
PS:limit:参数控制模式应用的次数,因此影响所得数组的长度。
如果该限制 n 大于 0,则模式将被最多应用 n - 1 次,数组的长度将不会大于 n,而且数组的最后一项将包含所有超出最后匹配的定界符的输入。
如果 n 为非正,那么模式将被应用尽可能多的次数,而且数组可以是任何长度。
如果 n 为 0,那么模式将被应用尽可能多的次数,数组可以是任何长度,并且结尾空字符串将被丢弃。
第二种方式:
public static void main(String[] args) {
String str=",,,,";
String string = str.replaceAll(",",", ");
System.out.println("空格字符串:"+string.split(",").length);
System.out.println("空格字符串:"+string.split(",",-1).length);
}
为了得出连续逗号字符串分割是有值,使用正则表达式进行替换,每个英文状态下的逗号被替换成应为状态下的逗号加空格。这样新的字符串再进行分割就可以了!