Ich habe eine getrennte TXT-Datei, in der es eine Liste von "Studenten" mit ihrer eigenen Marke auf der Seite, die von 0 bis 10 geht, ist hier ein Beispiel dafür, wie die .txt wie folgt aussieht:Berechnen von Durchschnitt aus einer Liste von Studenten aus einer TXT-Datei
Mark 2
Elen 3
Luke 7
Elen 9
Jhon 5
Mark 4
10 Elen
Luke 1
Jhon 1
Jhon 7
Elen 5
Mark 3
Mark 7
Was ich tun möchte, ist der Durchschnitt der einzelnen Schüler Berechnung (ausgedrückt in double
), so dass die Ausgabe aussehen würde, dies:
Mark: 4.0
Elen: 6.75
Luke: 4.0
Jhon: 4.33
Hier ist, was ich habe kommen mit, denn jetzt habe ich es geschafft, nur Properties
zu verwenden, um die Schülernamen ohne repe zur Liste Aber die Zahl, die auf jeder Seite zu sehen ist, ist offensichtlich die letzte, die das Programm findet.
ich es auf einer Schaltfläche Action enthalten habe, wie ich eine GUI bin Umsetzung, indem Sie die Taste über die Ausgabe Drücken gezeigt ist append
in einem TextArea
:
b1.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent d) {
try {
File file = new File("RegistroVoti.txt");
FileInputStream fileInput = new FileInputStream(file);
Properties properties = new Properties();
properties.load(fileInput);
fileInput.close();
Enumeration enuKeys = properties.keys();
while (enuKeys.hasMoreElements()) {
String key = (String) enuKeys.nextElement();
String value = properties.getProperty(key);
l1.append(key + ": " + value + "\n");
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
});
Ich dachte Collectors
zu verwenden, um den Mittelwert zu berechnen , aber ich weiß wirklich nicht, wie man es einführt ...
Irgendwelche Hilfe wird geschätzt!
Vielen Dank im Voraus!
Zum Sammeln lernen zukünftige Verwendung. http://www.tutorialspoint.com/java/java_collections.htm – UDID
Sie könnten eine 'HashMap' verwenden, die Schlüssel-Wert-Paare speichert ... Ihr Schlüssel wäre der Name des Schülers und Ihr Wert könnte eine' ArrayList' sein Punkte. Nachdem Sie die Datei gelesen haben, können Sie über die 'HashMap' iterieren und den Durchschnitt für jeden Schüler basierend auf der 'ArrayList' von Scores berechnen. – brso05
Die Verwendung von Eigenschaften funktioniert nicht, da die Eigenschaft Mark nur einen Wert hat. – Grayson