我试图一次从一个文本文件中读取信息。请考虑以下示例文件:
Student 1, 45, 32, 45
Student 2, 34, 22, 23
然后我想将数据存储在字符串数组中,然后将字符串数组转换为二维整数数组,因为我需要能够操纵它们的分数。不幸的是,学生人数不详
我决定创建一个for循环,逐行读取数据,将其存储在我的字符串数组中,最后将其转换为二维整数数组。
我的代码并没有像预期的那样正常工作。
int [][]score = null;
String [][]studentDataParsed = null;
for (int i = 0; i < 100; ++i) {
for (int j = 0; j < 100; ++j) {
String oneStudentData = input.nextLine(); //read one line from input file
oneStudentData.split("[,]"); //parse the data
studentDataParsed[i][j] = oneStudentData;
//convert the data into the double array
}
}
for (int i = 0; i < studentDataParsed.length; ++i) {
for (int j = 0; i < studentDataParsed.length; ++j) {
score[i][j]=(int) (Float.valueOf(studentDataParsed[i [j])).floatValue();
}
}
答案 0 :(得分:0)
我不确定你对循环的看法。您应该已经使用循环来读取行,因此您只需要跟踪行并将拆分字符串分配给您的数组:
int curline = 0;
try (BufferedReader br = new BufferedReader(new FileReader(file))) {
String line;
while ((line = br.readLine()) != null) {
studentDataParsed[curline] = line.split(",");
curline++;
}
}
您也可以考虑创建一个Student类,将每一行读入该类的构造函数,并使用List来存储结果。