CSV行拆分为数组

时间:2012-05-18 07:33:37

标签: java csv split

我有一个包含以下行的CSV文件:

SHIELA,ABIJAY,,,shiela@abijay.com,Shiela123,,43 123 STREET,,MEDFORD,MA ,2155,,,,617-874-4248,0,0,0,,,,,0,0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,20847, INAC,8101969,,,,,,,`

使用split am将值拆分为数组

def fields = line.split(",")

我正在

[SHIELA, ABIJAY, , , shiela@abijay.com, Shiela123, , 43 BOWER STREET, , MEDFORD, MA , 2155, , , , 617-874-4248, 0, 0, 0, , , , , 0, 0, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 20847,  INAC, 8101969]

但是在排队之后我在8101969之后还有更多的逗号。如何在该数组中获得逗号?

3 个答案:

答案 0 :(得分:4)

要解决此特定问题,请执行

def fields = line.split(",", -1)

一般来说,我同意@npinti;考虑使用诸如OpenCSV之类的CSV库可能是个好主意。

答案 1 :(得分:2)

如果您需要处理CSV文件,我建议您使用更强大的功能(而不仅仅是.split),例如OpenCSV

  

opencsv是一个非常简单的csv(逗号分隔值)解析器库   for Java。

提供了一个非常简短的教程here

答案 2 :(得分:1)

请参阅JavaDoc for split。如果只有一个参数,则丢弃空尾随字符串。如果存在非正的第二个参数,

  

然后模式将被应用尽可能多次,并且数组可以具有任何长度。

所以你的问题将通过以下方式解决:

def fields = line.split(",", -1)