在Java中将文本文件转换为数组

时间:2014-12-05 21:36:53

标签: java arrays file text java.util.scanner

我是Java的初学者,拥有25名学生的名单,其中包括他们的姓名,年龄,收入和智商。我正在努力解决如何获取此文本文件并将其放入数组中以便我可以对它们进行排序等等。到目前为止,我有:

File myFile = new File ("./src/Project2/StudentList");
Scanner myScan = new Scanner(myFile);

while (myScan.hasNext()) {

    String line = myScan.nextLine();
    Scanner scanner = new Scanner(line);
    scanner.useDelimiter(",");

    while (scanner.hasNext()) {
        String name = scanner.next();
        String age = scanner.next();
        String income = scanner.next();
        String smart = scanner.next();

        Student students = new Student(name, age, income, smart);


        System.out.println(students);
    }
}

我只是想知道最简单的方法。我很近,我能感受到它!提前谢谢。

3 个答案:

答案 0 :(得分:1)

定义你的数组:

Student[] students = new Student[25];
int i = 0;

然后在你的循环中

Student student = new Student(name, age, income, smart);
students[i++] = student;

或动态数组

List<Student> students = new ArrayList()<>;

并在循环中:

Student student = new Student(name, age, income, smart);
students.add(student);

答案 1 :(得分:1)

因此,如果正确解析了文本文件,并正确地实现了Student类,我认为最好的方法就是将学生插入到正在发生print语句的学生数组中。

你可以在循环之前做到这一点:

Student[] studentArray = new Student[25];
int count = 0;

正在发生印刷声明的地方

studentArray[count] = student;
count++;

另外,为了清楚起见,我会将循环内的学生变量重命名为单数,因为它一次只代表一个学生。也许currentStudent实际上更合适。

答案 2 :(得分:0)

在循环外部初始化您的数组:Student[] students = new Student[25];然后,维护一个计数器,以便在循环浏览文件时跟踪您所在的学生。对于每个学生,students[i] = new Student(name, age, income, smart);