1

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

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

使用拆分将值拆分为数组

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 之后我还有几个逗号。我如何在那个数组中也得到那个逗号?

4

3 回答 3

4

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

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

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

于 2012-05-18T07:37:20.070 回答
2

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

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

此处提供了一个非常简短的教程。

于 2012-05-18T07:37:28.247 回答
1

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

那么该模式将被应用尽可能多的次数,并且该数组可以具有任意长度。

因此,您的问题将通过以下方式解决:

def fields = line.split(",", -1) 
于 2012-05-18T07:41:00.853 回答