| 

.NET C# Java Javascript Exception

2
Mit der Klasse StringTokenizer kann ich in Java Zeichenketten anhand bestimmter Trennzeichen in Teilzeichenketten (Tokens) zerlegen. Dabei ergibt sich allerdings das Problem, das leere Tokens (siehe Beislpiel, in dem das Komma als Trennzeichen interpretiert wird) einfach wegoptimiert werden.

StringTokenizer mySt = new StringTokenizer("5,,2,,4", ",");


Dies unterscheidet StringTokenizer von der Methode String.split, die nichts wegoptimiert. Kann man das Verhalten beider Lösungen dennoch angleichen und wenn ja, wie?
01.05.2012
bio-grad 1 1
1 Antwort
0
Nein, soweit ich sehe, arbeitet jede der beiden Methoden auf ihre Weise.

Das Problem mit StringTokenizer scheint uralt zu sein: siehe dazu die Java-Bug-DB (Link in den Google-Cache, weil zumindest bei mir die originale Seite gerade nicht aufgeht).

Besonders schön finde ich diesen Kommentar:

This looks like one of those cases where old-style coding
practices (a la C's strtok function) is being promulgated in
Java. Almost anyone trying to work with real files in a
real environment is going to be caught out by this. It seems
like the StringTokenizer class was designed purely with the
special case of multiple whitespace characters being
considered. This is fine if you want to process, say, the
output from a ls command, but is pointless for
processing files generated by most common applications (for
instance CSV or tab-delimited, the two most common forms I
have had to deal with), where a pair of delimiters next to
each other indicates a null or empty field. The fact that
the documentation does not even mention the current
situation with handling multiple delimiters can only be
considered to be a bug.
02.05.2012
Matthias Hlawatsch 13,2k 4 9

Stelle deine Java-Frage jetzt!