如何使用CsvReader动态地在Groovy / Grails中创建多维字符数组

时间:2013-12-31 16:46:42

标签: arrays csv grails multidimensional-array groovy

我正在尝试通过读取CSV文件中的内容来定义多维数组,这是我的代码:

//this doesn't work START
def csvData = [][]
//this doesn't work END

    file.inputStream.toCsvReader([skipLines: 1]).eachLine {  tokens ->

        if(tokens[0] ==~ valid){
            numbersToProcess.add(tokens[0])
            for (int i = 0; i < columnNum; i++) {
                dataToSave.add([tokens[i]]) 
            }
        }else{
            numbersFailed.add(tokens[0])
            failedLineNumbers.add(lineNumber)
        }

        lineNumber++                    
    }

现在因为我想动态构建多维数组,我不确定我是怎么做的,因为我不能在.each之前

1 个答案:

答案 0 :(得分:0)

使用groovy,你必须指定至少第一个元素的大小。此外,数组不会被视为列表。

所以你可以做到

def csvData = new Object[100][]

代替。

否则你可以使用列表清单。你的选择。有关详情,请参阅http://groovy.codehaus.org/JN1025-Arrays