将CSV文件读取到二维数组中



我几天来一直在努力学习如何创建这段代码。这是一个家庭作业的例子。初级Java期末项目。我正要把头发扯下来,如果你能给我一点指导,我会很感激的。我似乎不知道如何将csv文件解析成一个合适的2d数组。分隔符为","。我需要模拟一列数据(例如年份(,但忽略第一行(0,0(、(0,1(、"(0,2(",因为它只带有我认为的标签。我太失落了。我打印出了第一列,但我如何忽略(0,0(处的标签,以及如何存储这些信息,以便在方法中操作它?除了如何正确读取值,然后能够操作它们之外,我在大部分作业中都不需要帮助。非常感谢。

import java.util.*;
import java.io.*;
public class BasicFileIO{
public static void main (String[] args) {
String fileName = "Crime.csv";
File file = new File(fileName);
try {
Scanner input = new Scanner(file);
while (input.hasNext()) {
String data =  input.nextLine();
String[] values = data.split(",");
System.out.println(values[0]);
}
}catch (Exception e) {
System.out.printf("Error");
}
}
}

这是CSV文件的图像。我无法上传它。这是它在谷歌文档中的样子,但如果我在atom中打开它,它只是一个带有逗号和值的文件(而不是在单元格中(。CSV屏幕截图

您可以使用apache commons csv读取和解析scv文件。以下是使用此库读取列的示例:

Reader in = new FileReader("path/to/file.csv");
Iterable<CSVRecord> records = CSVFormat.EXCEL.parse(in);
for (CSVRecord record : records) {
String lastName = record.get("Last Name"); // or you can pass the index of column
String firstName = record.get("First Name");
}