gpt4 book ai didi

java - 从 csv 文件中提取数据并放入二维数组 - 重构

转载 作者:行者123 更新时间:2023-11-29 03:31:25 26 4
gpt4 key购买 nike

我需要从 csv 文件中读取数据,二维数组对我来说更方便(在我看来,这是处理此“计划”数据的最简单方法)。每个文件行包含以下格式的信息:

教师、类(class)、小组、学生、结果

如下示例:

Paul Schwartz,Introduction to Computer Architecture,I1,Ben Dunkin,88
Muhamed Olji,Object Oriented Programming,I4,Mike Brown,73

但是我的代码需要一些简化。但我不知道如何让它变得更容易,所以请教

代码:

private String[][] fileContent(String pathToCSVFile) {
final int ROWS = 100;
final int COLUMNS = 5;
String fileData[][] = new String[ROWS][COLUMNS];
Scanner scanner = new Scanner(pathToCSVFile);
boolean done = false;
int i, j;

while (!done) {
for (i = 0; i >= 0; i++) {
for (j = 0; j >= 0; j++) {
String str[] = scanner.nextLine().split(",");
for (int element = 0; element < str.length; element++) {
fileData[i][element] = str[element];
if (i >= ROWS) {
Arrays.copyOf(fileData, fileData.length * 2);
}
}
}
}

if (!scanner.hasNextLine()) done = true;
}

return fileData;
}
  • 如何重构这段代码以获得更好的简洁性?
  • 对于部分填充的数组是否存在更好的方法(比 Arrays.copyOf(fileData, fileData.length * 2))?

最佳答案

使用 openCSV,您可以获得包含所有行的列表并将其转换为数组(或只保留列表):

try (CSVReader reader = new CSVReader(new BufferedReader(
new FileReader(pathToCSVFile)));) {

List<String[]> lines = reader.readAll();
return lines.toArray(new String[lines.size()][]);
}

(使用 Java 7 try-with-resources 语法)

关于java - 从 csv 文件中提取数据并放入二维数组 - 重构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18055889/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com