从Java中的令牌列表中提取数据

从Java中的令牌列表中提取数据,java,list,parsing,csv,token,Java,List,Parsing,Csv,Token,我有一个字符串数组,我将其转换为一个列表,通过下面代码片段中的while循环对其进行迭代,以解析.CSV文件。正在解析的.CSV文件每行有15个元素,我想单独访问每个元素,以便将数据传递给另一个函数。如何从令牌列表中逐个提取这些项 try { CSVReader reader = new CSVReader(new FileReader(filePath), ','); // Reads the complete file into list of tokens.

我有一个字符串数组,我将其转换为一个列表,通过下面代码片段中的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();
    }
试试看{
CSVReader reader=newcsvreader(newfilereader(filePath),',');
//将完整文件读入令牌列表。
List rowsAsTokens=null;
试一试{
rowsAsTokens=reader.readAll();
} 
捕获(IOE1异常)
{
//TODO自动生成的捕捉块
e1.printStackTrace();
}
迭代器rowsAsTokensIt=rowsAsTokens.Iterator();
while(rowsAsTokensIt.hasNext()){
for(字符串标记:rowsAsTokensIt.next()){
系统输出打印(令牌+“”);
}
System.out.println();
}

要单独访问项目,请使用
[]
操作符

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)
,它将为您发挥神奇的作用