将逗号分隔的字符串转换为带有逗号sepearted的arraylist

sri*_*ana 3 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 ,,,, ,5428665,0,mnc071.mcc404.gprs,9448861612,预付,1 ,,, 2255 ,,,,"

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

但问题是它转换为255(列)并且数组的大小已经达到36,但它应该是40

Lin*_*ica 8

来自以下文件String.split(String):

将此字符串拆分为给定正则表达式的匹配项.此方法的工作方式就像调用带有给定表达式和limit参数为零双参数split方法一样.因此,结尾的空字符串不包含在结果数组中.

你看到你的数组中没有包含空字符串,并且因为你的line结尾,,,,会丢失这4个元素,所以留下List36的大小.

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

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

从文档:

[...] If n(第二个参数to split())是非正数,那么模式将被应用尽可能多次,并且数组可以具有任何长度.[...]