【发布时间】:2012-08-13 06:36:00
【问题描述】:
我有一个类似的 csv 文件 (details.csv)
ID,NAME,ADDRESS
1,"{foo,bar}","{123,mainst,ny}"
2,"{abc,def}","{124,mainst,Va}"
3,"{pqr,xyz}","{125,mainst,IL}"
当我使用时(注意:我上面还有其他闭包,它从目录中读取所有 csv 文件)
if(file.getName().equalsIgnoreCase("deatails.csv")) {
input = new FileInputStream(file)
reader = new BufferedReader(new InputStreamReader(input))
reader.eachLine{line-> def cols = line.split(",")
println cols.size() }
我得到的不是 3 号,而是 6 号
1
"{foo
bar}"
"{123
mainst
ny}"
spilt(",") 用逗号(,) 分割数据,但我希望我的结果为
1
"{foo,bar}"
"{123,mainst,ny}"
如何解决此关闭问题。请帮忙!谢谢
【问题讨论】:
-
String.split(String regex) 将根据您传入的任何正则表达式进行拆分。由于您只是传入“,”,因此它也会拆分值中包含的逗号。您需要一个忽略这些逗号的正则表达式,或者找到一个解析 CSV 文件的 Java/Groovy 库。