Daten einlesen

Status
Nicht offen für weitere Antworten.

bronkowitz

Aktives Mitglied
Hallo!

Ich versuche eine Datendatei einzulesen. Es sind jeweils 3 Zahlen pro Zeile, die aber mit einer nicht vorauszusehenden Anzahl von Leerstellen getrennt sind.

while ((zeile = br.readLine()) != null)
{
String[] spalten = zeile.split(" ");

phi = Double.parseDouble(spalten[0]);
x = Double.parseDouble(spalten[1]);
y = Double.parseDouble(spalten[2]);

gelenkbahn.add(new Punktbahn(phi,x,y));

anzPunkteGelenk++;
}

Es will mir einfach nicht gelingen, ein paar Zeilen klappt es, dann plötzlich wieder nicht (java.lang.NumberFormatException: multiple points). Wie macht man das richtig?

Gruß
bronkowitz
 
"Nur" ist gut...
nee, das sind reguläre Ausdrücke. Die beiden vorgeschlagenen scannen nach:
1. eine beliebige Anzahl Leerzeichen, mindestens ein Vorkommen.
2. Leerzeichen und Tabulatoren in beliebiger Anzahl und Reihenfolge, mindestens ein Vorkommen.

Das das ebenfalls nicht funzt könnte daran liegen, das in der betreffenden Zeile möglicherweise irgendwo ein Leerzeichen fehlt, wodurch die Zahl die dort angeprangert wird zwei Punkte erhält (z.B. "1.2 3.4" -> "1.23.4" -> NumberFormatException).

Möglicherweise ist das gelesene Zahlenformat auch "deutsch", dann wären nämlich Dezimalpunkt und Tausender-Trennzeichen vertauscht.
 
Zuletzt bearbeitet von einem Moderator:
alternativ sollte auch Double.parseDouble(spalten[0].trim()); gehen
 
Status
Nicht offen für weitere Antworten.

Zurück
Oben