2013-12-16 40 views
-4

所以我需要做一個程序,有一個對象的學生數組,每個學生的參數爲(int ID, String name, Double[] grades) 每個學生被寫入一個文本文件。 文本文件中去這樣的事情我有一個對象構造函數的數組,每個對象有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[]) 到目前爲止,我設法參數數組制定一個計算學生人數的計數器。但我的問題是與成績陣列。

請我需要你們把它解釋給我像個白癡。

+0

是文件的那些個行的一部分,或者只是試圖格式化爲計算器文件? – Eric

+1

另外,很確定你想讓我們解釋它,就像我們想要一個白癡,因爲解釋它像一個白癡對每個人都是無益的。 – Eric

+0

您確定要「雙」而不是「雙」嗎? – Eric

回答

0

使Student類與所有int ID, String name, Double[] grades作爲實例變量與適當的獲取者和設置者。然後製作這些學生對象的arrayList

1

你應該張貼你到目前爲止的代碼,但實際上這裏的解決方案是一個嵌套循環。

在你迄今爲止你讀出的學生證和名字的循環。

然後,您想要將空格的剩餘部分(line.split(" "))拆分,然後將這些值轉換爲雙精度(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] 
] 
相關問題