StreamTokenizer

Master1991

Mitglied
Hi,

ich hab eine Frage zu einer Aufgabe ueber/zu StreamTokenizer:

Und zwar haben wir eine Datei mit "Datensätzen" die sind so aufgebaut:

Code:
Vorname1;Nachname1;3;
Vorname2;Nachname2;4;
Vorname3;Nachname3;1;
Vorname4;Nachname4;2;

Also "ungeordnet" wir sollen nun mithilfe einen StreamTokenizers die Daten einlesen und in korrekter Reihenfolge in einem 2 Dimensionalem Array speichern.

also das array sollte so aussehen:

Code:
array[0][0]: Vorname3 ; array[0][1]: Nachname3
array[1][0]: Vorname4 ; array[1][1]: Nachname4
array[2][0]: Vorname1 ; array[2][1]: Nachname1
array[3][0]: Vorname2 ; array[3][1]: Nachname2

Denke die Aufgabenstellung ist klar.
So nun steht aber die Position des Namens ja immer hinter den Datensätzen. Wie komm ich denn mit dem StreamTokenizer zuerst an die Position und danach erst an die Daten?

Oder gibt es keine Möglichkeit ausser das ganze in einem anderen Array mit Position zwischenzuspeichern zu sortieren und zu kopieren?

mfG
 

eRaaaa

Top Contributor
"StringTokenizer is a legacy class that is retained for compatibility reasons although its use is discouraged in new code. It is recommended that anyone seeking this functionality use the split method of String or the java.util.regex package instead."

Das steht in der API-Doku der Klasse, das könnt ihr nebenbei mal eurem Lehrer/Prof/etc. weitergeben!


Ansonsten einfach mit dem Tokenizer drei Tokens lesen, ggf. jeweils das Dritte dann zu einem int parsen und dem Array zuweisen.
Ist die Anzahl der Datensätze denn vorab bekannt?

/edit: Tatsache es geht hier um den Streamtokenizer, mein Fehler, habe String gelesen.
 
Zuletzt bearbeitet:

Master1991

Mitglied
Prof ja....hmm super ich freu mich richtig veraltete Sachen lernen zu müssen...

Ja die Anzahl der Datensätze ist vorher bekannt.

Okay, ich versteh zwar in etwa was du meinst aber wie ich das genau umsetze weiß ich nicht.

Angenommen ich les nun drei Tokens ein lande dann ja auch bei dem Integer muss ich den dann auf int casten? Erkennt der StreamTokenizer nicht automatisch Zahlen?

Naja jedenfalls hab ich dann den Wert und kann mein Array füllen aber dann müsste ich ja wieder an die Namen ran, brauch ich dann dazu wieder einen neue StreamTokenizer der die gleiche Datei auseinandernimmt?
 
Zuletzt bearbeitet:

Timothy Truckle

Top Contributor
Wie komm ich denn mit dem StreamTokenizer zuerst an die Position und danach erst an die Daten?
gar nicht, Du must sie zwischespeichern. Ich denke es geht auch genau darum...

Oder gibt es keine Möglichkeit ausser das ganze in einem anderen Array mit Position zwischenzuspeichern zu sortieren und zu kopieren?
Ja. Man kann eine Klasse erstellen, die genau die 3 daten als Eigenschaft" hat, und die [JAPI]Sortable[/JAPI] implementiert.
Das ganze in einem [JAPI]TreeSet[/JAPI] gespeicher und anschließend über (die dann bereits sortiere) Liste iterieren und das Array zu füllen...

bye
TT
 

Master1991

Mitglied
Danke für deine Antwort und ich bin beruhigt das es doch nicht veraltet ist.

Allerdings glaube ich nicht das wir es so implementieren sollen. Zumal wir noch keine Collections hatten oder irgendwelche bereits integrierten Sortieralgorithmen.

Da kommt mir das doppelte Einlesen für den Anforderungstatus einleuchtender vor.
 

Ähnliche Java Themen

Neue Themen


Oben