1

我使用 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."

所以我想弄清楚的是如何打印所述行中的选择列。还要提前感谢,我正试图了解 groovy/java,我来自 Ruby 背景。

4

1 回答 1

2

不知道你的意思是'......如何打印所述行中的选择列'

但是这个脚本(例如)为每一行打印第 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!
于 2012-06-15T08:54:06.403 回答