Wie aus Satz einzelne Wörter bekommen?
Hi,
ich habe eine sehr große Datei, in der in jeder Zeile (es gibt 25,115,477 + 50,790,030 Zeilen) jeweils fünf Werte stehen, die man sich merken soll.
Nun bin ich mit einem Scanner über die Datei gegangen, der jedes Wort einzeln liest und nicht jede Zeile. Da braucht aber mein Programm schon 150 Sekunden. Wir sollen es aber in 90 schaffen.
Also wäre es doch sinnvoll, nicht Wort für Wort, sondern Zeile für Zeile zu lesen, oder?
Aber dann muss ich ja aus einer Zeile die einzelnen Werte bekommen. Wie geht das?
Eine Zeile sieht ungefäht so aus:
439115 2196300775 53.78677620000000559 11.55870140000000035 0
und ich brauche jeweils die erste, zweite und dritte Zahl.
Wie kann ich das schnell genug hinbekommen?
2 Antworten
Ich würde dir zunächst empfehlen, keinen Scanner für dein Vorhaben zu verwenden, sondern eher auf einen BufferedReader oder die Methoden der Files-Klasse (readAllLines) zurückzugreifen. Mit denen erreichst du eine viel bessere Performance. Der Scanner selbst liest nicht nur Daten ein, sondern parst sie auch mittels regulärer Ausdrücke.
Die einzelnen Werte einer Zeile kannst du erhalten, indem du sie anhand ihrer Leerzeichen auftrennst.
String[] words = line.split(" ");
Zeile einlesen und per Whitespace als Worttrennung bearbeiten?