我编写了一个脚本,使用 tokenize 在 groovy 中解析一个 .csv 文件,最终没有完全满足我的需求,我正在尝试使用 openCSV 库,但我不确定如何解析出单个列。 这是我到目前为止的代码:
List<String[]> rows = new CSVReader(
new InputStreamReader(getClass().classLoader.getResourceAsStream(inputFileString)))
.readAll()
rows.each { row ->
row.each { it ->
println it
}
}
这是我的输入数据:
1,"unknown","positive","full message","I love it."
所以我试图弄清楚的是如何打印所述行中的选择列。另外提前感谢,我正在尝试了解时髦/java,我来自Ruby背景。
不确定你说的'...如何打印所选行中的列'
但是此脚本(例如)打印每行的第 4 列:
@Grab( 'net.sf.opencsv:opencsv:2.3' )
import au.com.bytecode.opencsv.CSVReader
// This sets example to a 2 line string
// I'm using it instead of a file, as it makes
// an easier example to follow
def example = '''1,"unknown","positive","full message","I love it."
|2,"tim","negative","whoop!","It's ok"'''.stripMargin()
List<String[]> rows = new CSVReader( new StringReader( example ) ).readAll()
rows.each {
// print the 4th column
println it[ 3 ]
}
打印:
full message
whoop!