从Java中的令牌列表中提取数据
我有一个字符串数组,我将其转换为一个列表,通过下面代码片段中的while循环对其进行迭代,以解析.CSV文件。正在解析的.CSV文件每行有15个元素,我想单独访问每个元素,以便将数据传递给另一个函数。如何从令牌列表中逐个提取这些项从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.
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)
,它将为您发挥神奇的作用