0

以下のコード スニペットの while ループを介して反復処理し、.CSV ファイルを解析するリストに変換した文字列配列があります。解析される .CSV ファイルの行ごとに 15 の要素があり、そのデータを別の関数に渡すことができるように、各要素に個別にアクセスしたいと考えています。これらのアイテムをトークンのリストから 1 つずつ抽出するにはどうすればよいですか?

 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 にはスプラット演算子がないため、15 個のトークンすべてをスペルアウトする必要があります。splat 演算子を使用する言語では、書くだけyourMethod(*tokens)で魔法のように機能します。

于 2013-01-04T21:33:50.943 に答える