我有一个包含以下行的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之后还有更多的逗号。如何在该数组中获得逗号?
答案 0 :(得分:4)
答案 1 :(得分:2)
如果您需要处理CSV文件,我建议您使用更强大的功能(而不仅仅是.split
),例如OpenCSV:
opencsv是一个非常简单的csv(逗号分隔值)解析器库 for Java。
提供了一个非常简短的教程here。
答案 2 :(得分:1)
请参阅JavaDoc for split。如果只有一个参数,则丢弃空尾随字符串。如果存在非正的第二个参数,
然后模式将被应用尽可能多次,并且数组可以具有任何长度。
所以你的问题将通过以下方式解决:
def fields = line.split(",", -1)