我正在将数据从csv格式提取到java。我已经为此写了一些代码。
Reader reader = Files.newBufferedReader(Paths.get(FilePath));
CSVReader csvReader = new CSVReaderBuilder(reader).build();
List<String[]> records = csvReader.readAll();
for(String[] record : records) {
System.out.println(record[0]); // Note : Each record has two strings in it separated by delimiter ";"
String[] parts = record[0].split(";"); //So I am splitting here
System.out.println(parts[0]); //First part
System.out.println(parts[1]); //Second part
}
我的主要目的是在从字符串数组(即“记录”)中拆分每个字符串后存储部件。控制台会按我的预期输出。但是我不想在控制台上打印,而是将其存储在两个不同的ArrayLists中。 因此,我尝试将for循环更改为普通的for循环,如下所示:
ArrayList<List<String>> separatedTime = new ArrayList<List<String>>();
ArrayList<List<String>> separatedValues = new ArrayList<List<String>>();
String[] Array = new String[records.size()];
for(int i = 0; i < records.size(); i++) {
Array[i] = (records[i]); //Error : Type of expression must be an array type. But it is resolved to List<String[]>
String[] parts = Array[i].split(";");
separatedTime.add(parts[0]); //Error : The method add(List<String>) in the type ArrayList<List<String>> is not applicable for the arguments (String)
separatedValues.add(parts[1]);
}
但这不起作用。我不知道为什么它不起作用 1)如果将其从增强型for循环更改为普通for循环。如果我输入错了,我该如何更改为正常循环? 2)在普通的for循环中使用定界符分割后,为什么我不能存储在数组列表中
我知道我在某个地方,以某种方式陷入错误。但是无法找出我该如何纠正
答案 0 :(得分:0)
知道了!!我用以下方法解决了:
String[] Array = null;
for(int i=0; i<records.size();i++)
{
Array = (records.get(i));
String[] parts = Array[0].split(";");
separatedTime.add(parts[0]);
separatedValues.add(parts[1]);
}
一切都解决了。谢谢您的时间