我在Java项目中有OpenCSV阅读器,并且我从CSV文件中读取数据,但是现在我正在硬编码读取它的循环中的列数。 我记得有一些方法可以获得列数,但我不记得它被称为什么以及如何使用它。
以下是代码:
public ArrayList<ArrayList<String>> getCSVContent(String filepath) throws Exception {
CSVReader reader = new CSVReader(new FileReader(FILE_PATH));
ArrayList<ArrayList<String>> array = new ArrayList<ArrayList<String>>();
String[] nextLine;
while ((nextLine = reader.readNext()) != null) {
ArrayList<String> list = new ArrayList<String>();
for (int i = 0; i < 5; i++) { //5 is the number of columns in the file
list.add(nextLine[i]);
}
array.add(list);
}
reader.close();
return array;
}
答案 0 :(得分:2)
只需使用nextLine.length
计算数组中的项目。
for (int i = 0; i < nextLine.length; i++) {
list.add(nextLine[i]);
}
或者使用for-each循环:
for (String col : nextLine) {
list.add(col);
}
答案 1 :(得分:0)
一个简单的方法是你用BufferedReader的Scanner读取第一行并计算“;”或者你用什么来分割列。
如果您使用
,您可以计算它string.toCharArray();
和++ a Integer如果是';'。
第二种方法是查看CSV阅读器的方法。我不知道它们,但你可以在eclipse中的任何地方输入(不知道它在netbeans中是如何工作的)“读者”。并按控制+空格。如果你有运气,那就有一个。
答案 2 :(得分:-1)
尝试使用此列来获取列数:reader.getColumnCount()