逐行读取文件,然后将字符串转换为二维整数数组

时间:2015-03-15 17:37:59

标签: java arrays string multidimensional-array

我试图一次从一个文本文件中读取信息。请考虑以下示例文件:

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();
    }
} 

1 个答案:

答案 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来存储结果。