2013-12-16 3 views
-4

, поэтому мне нужно создать программу, у которой есть массив студента объекта, и у каждого ученика есть параметр() информация каждого Студент написан в текстовом файле. текстовый файл идет к чему-то вроде этогоУ меня есть массив конструкторов объектов, и у каждого объекта есть 3 параметра, один из них - это массив

1. 1023910 jhon 40 90 10 85 
2. 1023910 jhon 40 90 10 85 
3. 1291009 max 89 92 49 100 
4. 1102293 Michael 20 100 82 72 

.... and so on" 

мне нужно прочитать то, что в текстовом файле и присвоить информацию в текстовом файле в массив студентов, который содержит параметры (id, name, grades[]) до сих пор мне удалось сделайте счетчик, который рассчитал количество студентов. но моя проблема связана с массивом grades.

Пожалуйста, мне нужны вы, ребята, чтобы объяснить это мне как идиот.

+0

ли исчислено линии часть файла, или просто попытка отформатировать файл для StackOverflow? – Eric

+1

Кроме того, довольно уверен, что вы хотите, чтобы мы объяснили это как _we would_ идиот, так как объяснение этого, как идиот, было бы бесполезным для всех. – Eric

+0

Вы уверены, что хотите «Двойной», а не «двойной»? – Eric

ответ

0

Сделайте Student класс со всеми вашими int ID, String name, Double[] grades как переменные экземпляра с соответствующими геттерами и сеттерами. Затем сделайте array или List этих Студенческих объектов.

1

Вы должны написать код, который у вас есть, но на самом деле решение здесь представляет собой вложенный цикл.

В цикле вы до сих пор читаете идентификатор и имя ученика.

Затем вы хотите разделить оставшуюся часть строки пробелом (line.split(" ")), а затем преобразовать эти значения в double (Double.valueOf(str)) и поместить их в объект-ученик.

String restOfline = ...; 

String[] split = restOfLine.split(" "); 
double[] grades = new double[split.length]; 

for (int i=0;i<split.length;i++) { 
    grades[i] = Double.valueOf(split[i]); 
} 
0

Быстрая попытка ...

public class Test { 

    static class Student { 
    String id; 
    String name; 
    List<Integer> grades; 

    @Override 
    public String toString() { 
     return "ID='" + id + "', name='" + name + "', grades=" + grades + "\n"; 
    } 
    } 

    public static void main(String[] args) throws IOException { 
    String file = "src/main/resources/data.dat"; 

    List<Student> students = new ArrayList<Student>(); 
    BufferedReader br = new BufferedReader(new FileReader(file)); 
    String line; 
    while ((line = br.readLine()) != null) { 
     String[] items = line.split(" "); 
     Student student = new Student(); 
     student.id=items[0]; 
     student.name=items[1]; 
     if (2 < items.length) { 
     List<Integer> grades = new ArrayList<Integer>(); 
     for(int i=2; i<items.length;i++) { 
      grades.add(Integer.valueOf(items[i])); 
     } 
     student.grades = grades; 
     } 
     students.add(student); 
    } 
    br.close(); 

    System.out.println(students); 
    } 
} 

выход:

[ID='1023910', name='jhon', grades=[40, 90, 10, 85] 
, ID='1023910', name='jhon', grades=[40, 90, 10, 85] 
, ID='1291009', name='max', grades=[89, 92, 49, 100] 
, ID='1102293', name='Michael', grades=[20, 100, 82, 72] 
] 
Смежные вопросы