2013-01-04 41 views
0

我有一個字符串數組,我轉換爲一個列表,我通過下面的代碼片段中的while循環遍歷來解析.CSV文件。每個.CSV文件的每行都有15個元素被解析,我想單獨訪問每個元素,以便我可以將該數據傳遞給另一個函數。如何從令牌列表中逐一提取這些項目?從Java中的令牌提取數據

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(); 
    } 

回答

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),它會爲你工作。