从增强型for循环更改为普通for循环的问题

时间:2018-10-16 09:57:19

标签: java for-loop arraylist

我正在将数据从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循环中使用定界符分割后,为什么我不能存储在数组列表中

我知道我在某个地方,以某种方式陷入错误。但是无法找出我该如何纠正

1 个答案:

答案 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]);
            }

一切都解决了。谢谢您的时间