返回的元素数量少于我在运行String.split()
示例: - 实际的字符串是" country,12345,2,1 ,, 1 ,,",因此返回的数组中预计有8个元素,但是大小数组是" 6"
String line1 = "country,12345,2,1,,1,,";
String data1[] = line1.split(",");
System.out.println("Length : "+data1.length);
Length : 6
为什么会这样?
答案 0 :(得分:7)
因为单参数split
方法会丢弃尾随空字段。如果要保留它们,请使用双参数版本,参数为负limit
。
String data1[] = line1.split(",", -1);
答案 1 :(得分:0)
谢谢@Ian Roberts
Split()
方法会删除空字段,因此尾随空字段不会计数。
为了更好地理解,请参阅下面的代码 -
案例1:
String line1 = "country,12345,2,1,,1, ,";
String data1[] = line1.split(",");
System.out.println("Length : "+data1.length);
Output : 7
作为逗号中的第二个字符,即某事(但不是空的),分割不会仅计算最后一部分。
案例2:
String line1 = "country,12345,2,1,,1,, ";
String data1[] = line1.split(",");
System.out.println("Length : "+data1.length);
Output : 8
作为逗号之后的最后一个字符,即某些东西(但不是空的),分割将计算所有部分。
答案 2 :(得分:-2)
我认为你必须改变正则表达式:
String data1 [] = line1.split(“\\,”);