用逗号分隔将逗号分隔的字符串转换为arraylist

时间:2019-02-26 09:50:12

标签: java arraylist

如何将以下字符串转换为java ArrayList?

我尝试过:

  

“ GOC,404719160795907,911367109182460,218.248.72.40,62944,31,3331,31425,3544151354,117.200.252.120,bsnlnet,2,100.115.103.86,0,0,0,20190225123602,20190225125558,1196,,0,0 ,,,, 5428665,0,mnc071.mcc404.gprs,9448861612,Prepaid,1 ,,, 2,255 ,,,,“

List<String> data = new ArrayList<>(Arrays.asList(line.split(","))

但是问题是它最多可以转换为255(Column)并且数组的大小为36,但是应该为40

1 个答案:

答案 0 :(得分:8)

摘自String.split(String)的文档:

  

在给定正则表达式的匹配项周围拆分此字符串。   该方法的工作方式就像通过调用具有给定表达式且极限参数为 zero 二元拆分方法一样。 因此,空数组不包含在结果数组中。

您会看到空字符串未包含在数组中,并且由于line,,,,结尾,因此您将丢失这4个元素,而剩下的List大小为36

要包含最后一个元素,您需要调用重载String.split(String, int),如下所示:

List<String> data = new ArrayList<>(Arrays.asList(line.split(",", -1)));

从文档中:

  

[...]如果nsplit()的第二个参数)为非正数,则该模式将被尽可能多地应用,并且数组可以具有任何长度。 [...]

相关问题