Problem mit der Aufgabe

crysien

Mitglied
Hallo Leute,
Ich hoffe ihr könnt mir weiterhelfen.

Es geht darum, ich ein Programm schreiben muss, welcher 2 "csv-Datein " einlesen und damit dementsprechend weiterarbeiten soll.

in der ersten csv Datei sind :
Tätigkeit;Einheit;Preis
Displaytausch;Stunden;20 //also Displaytauschen kostet 20 € die Stunde
Diagnose;Festpreis;20
Versand;Festpreis;6
.......

In der zweiten Datei sind:
24.05.2018;Diagnose
24.05.2018;Displaytauschen;4 //die letzte Zahl sagt aus, das 4 Stunden zum Austausch gebraucht wurden
25.05.2018;Versand;
...

Ich habe mit der "split-Methode" die erste und die zweite Datei in allen Zeilen beim ";" gesplittet und jeweils in ein Array gespeichert und anschließend in eine ArrayList.

Das Problem ist jetzt, dass ab und zu ein Festpreis vorhanden ist und daher kein Faktor vorhanden ist, bei anderen Arbeiten gibt es wiederum ein Stundensatz.

Wenn Ich es am Ende ausgeben will, kommt ArrayIndexoutofBound, weil bei Versand sowie beim Diagnose kein Stundensatz vorhanden ist und daher an der Stelle im Array kein Wert vorhanden ist. Wenn Ich jedoch z.B. "25.05.2018;Versand;1" mache, funktioniert das, aber ist nicht Sinn der Aufgabe.

Wie könnte Ich das denn lösen ?
 
Das bedeutet es kann auch kein Wert vorhanden sein, wenn ich dich richtig verstehe?
Die Methode "split" nimmt zwei Parameter entgegen. Den zweiten solltest du dir mal anschauen.
Mehr Infos hier: https://www.javatpoint.com/java-string-split

Wenn du split(";", 0) verwendest bekommst du auch ein leeres Arrayfeld. Das musst du dann entsprechend
abfangen. Aber die IndexOutOfBoundException bist du dann los.
 
Leider klappt das nicht.
Ich habe mir überlegt, dass Ich das über die Länge der des ArrayList mache, also
if( datei2.size() == 4)
{
anzahlderstunden.add(datei2.get(3));
}

Das Problem ist, dass ich das so machen will, dass er Zeilenweise gucken soll, ob es eine 4.Spalte gibt und wenn nicht, dass er mit dem Faktor 1 rechnen soll.

Wie könnte Ich das denn umsetzen ?
 
Wenn ich Dich richtig verstehe, hast Du eine ArrayList<String[]> datei2. Dann liefert datei2.size() die Anzahl der Zeilen und datei2.get(3) die dritte Zeile. Zeile, nicht Spalte!
 

Neue Themen


Zurück
Oben