0

我有一个字符串数组,我将它转换为一个列表,我通过下面代码片段中的 while 循环遍历该列表以解析 .CSV 文件。正在解析的 .CSV 文件的每行有 15 个元素,我想单独访问每个元素,以便可以将该数据传递给另一个函数。如何从令牌列表中逐一提取这些项目?

 try {
    CSVReader reader = new CSVReader(new FileReader(filePath), ',');

    // Reads the complete file into list of tokens.                  
    List<String[]> rowsAsTokens = null;

    try {
        rowsAsTokens = reader.readAll();
        } 
        catch (IOException e1) 
        {
        // TODO Auto-generated catch block
        e1.printStackTrace();
      }

    Iterator<String[]> rowsAsTokensIt = rowsAsTokens.iterator();

    while (rowsAsTokensIt.hasNext()) {
        for (String token : rowsAsTokensIt.next()) {
            System.out.print(token + " ");
        }
    System.out.println();
    }
4

1 回答 1

0

要单独访问项目,请使用[]运算符。

while (rowsAsTokensIt.hasNext()) {
    String[] tokens = rowsAsTokensIt.next();
    yourMethod(tokens[0], tokens[1], ..., tokens[15]);
}

甚至更短

for (String[] tokens: rowsAsTokens) {
    yourMethod(tokens[0], tokens[1], ..., tokens[15]);
}

唉,Java 没有 splat 运算符,因此您必须拼出所有 15 个标记。在带有 splat 运算符的语言中,您只需编写yourMethod(*tokens)它,它就会为您发挥它的魔力。

于 2013-01-04T21:33:50.943 回答