Java CSV文件解析不会在末尾解析空列

And*_*ndy 6 java csv

我正在解析一个CSV文件,但是有一行是最后9列是空的,而用逗号分割的字符串会忽略剩余的空列.

这是代码来演示这个:

String s="L2,,,,,,,,,,,,,,,,,,108.50,-188.04,,,,,,,,,";
String[] columns = s.split(",");
System.out.println(columns.length);
Run Code Online (Sandbox Code Playgroud)

列的大小是20,当它应该是29.任何想法?

Bor*_*der 14

查看以下文档String.split:

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

因此,您需要查看其他方法的选项split

limit参数控制模式的应用次数,因此会影响结果数组的长度.如果限制n大于零,那么模式将最多应用n - 1次,数组的长度将不大于n,并且数组的最后一个条目将包含超出最后匹配分隔符的所有输入.如果n是非正数,那么模式将被应用尽可能多的次数,并且数组可以具有任何长度.如果n为零,那么模式将被应用尽可能多的次数,数组可以具有任何长度,并且将丢弃尾随的空字符串.

强调我的.

你需要:

String[] columns = s.split(",", -1);
Run Code Online (Sandbox Code Playgroud)