Ho un file CSV (details.csv) comeGroovy Spalato CSV
ID,NAME,ADDRESS
1,"{foo,bar}","{123,mainst,ny}"
2,"{abc,def}","{124,mainst,Va}"
3,"{pqr,xyz}","{125,mainst,IL}"
quando uso (Nota: ho altro dispositivo di chiusura di sopra di questo che legge tutti i file CSV dalla directory)
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() }
Invece di ottenere dimensioni 3 sto ottenendo 6 con valori
1
"{foo
bar}"
"{123
mainst
ny}"
fuoriuscito ("") sono i dati splitting con una virgola (,), ma voglio che i miei risultati di un s
1
"{foo,bar}"
"{123,mainst,ny}"
Come posso risolvere questa chiusura. Per favore aiuto! Grazie
String.split (String regex) verrà diviso su qualsiasi espressione regolare si passi in là. Poiché stai passando "," si divide anche nelle virgole contenute nei valori. Hai bisogno di un'espressione regolare che ignori quelle virgole o trovi una libreria Java/Groovy che analizza i file CSV. – smcg