Java: Wie kann ich eine Matrix aus einer CSV-Datei lesen und in meiner Matrix speichern?
Hallo!
Ich bin gerade dabei, eine Matrix aus einer CSV-Datei auszulesen. Dies habe ich schon geschafft.
Das Ausgeben auf der Konsole funktioniert, aber wie kann ich das in meine Matrix speichern?
Meine Matrix ist eine 8x8 Matrix.
Das Speichern der CSV-Werte in die Matrix sollte so aussehen:
- Matrix[0][0] = Erster Wert von der CSV-Datei
- Matrix[0][1] = Zweiter Wert von der CSV-Datei
- ...
- Matrix[7][7] = Letzter Wert von der CSV-Datei
Wie funktioniert das?
Danke!
1 Antwort
Ich gehe davon aus, dass die CSV-Datei aus acht Zeilen mit jeweils acht Einträgen besteht.
Du musst die Datei zeilenweise auslesen. Jede Zeile wird anhand der Trennzeichen aufgespalten. Du kannst die split-Methode der String-Klasse dafür verwenden. Dabei kommt ein Array heraus. Jedes Element dieses Arrays kannst du folgend zu einer Zahl casten und dann in die Matrix schreiben.
Pseudocode:
for y = 0, y < matrix.length && hasNextLine(), ++y:
// read line ...
values = line.split(',')
for x = 0, x < matrix[y].length && x < values.length, ++x:
matrix[y][x] = toDouble(values[x])
Wie oben beschrieben. Zum Parsen der Zahl siehe parseDouble.
Danke aber warum muss man die Zahlen der CSV Datei in einem Double Wert umwandeln?
Dein Matrix-Array wird auf jeden Fall numerischen Typs sein, denn mit den Elementen soll es ja später möglich sein, zu rechnen. Ob du nun Integer, Float oder Double darin hast, weißt du selbst am besten.
Die Daten aus der CSV sind nach dem Einlesen noch vom String-Typ. Demzufolge ist es notwendig, einen Typecast durchzuführen. Für Double wäre die parseDouble-Methode möglich, die anderen Wrapperklassen (Integer, Float) verfügen über ähnliche Methoden (parseInt, parseFloat).
Danke, ich habe unten (als eigener Kommentar) ein Screenshot von meinem jetzigen Code gepostet. Wie schaffe ich es nun die Werte der CSV Datei in mein 2-Dimensionales Array zu speichern?
Also wie hier:
Matrix[0][0] = Erster Wert von der CSV Datei
Matrix[0][1] = Zweiter Wert von der CSV Datei
.
.
.
Matrix[7][7] = Letzter Wert von der CSV Datei
Wie funktioniert das?
Danke