StringTokenizer ist völlig ungeeignet für die Aufgabe, eine Zeichenkette in ihre einzelnen Zeichen zu zerlegen. Mit String#split()
können Sie dies leicht tun, indem Sie eine Regex verwenden, die auf nichts zutrifft, z. B.:
String[] theChars = str.split("|");
Aber StringTokenizer verwendet keine Regexe, und es gibt keine Trennzeichenfolge, die Sie angeben können, die mit dem Nichts zwischen Zeichen übereinstimmen wird. Es est Ein netter kleiner Hack, mit dem Sie das Gleiche erreichen können: Verwenden Sie die Zeichenkette selbst als Begrenzungszeichenfolge (so dass jedes Zeichen darin ein Begrenzungszeichen ist) und lassen Sie die Begrenzungszeichen zurückgeben:
StringTokenizer st = new StringTokenizer(str, str, true);
Ich erwähne diese Möglichkeiten jedoch nur, um sie zu verwerfen. Beide Techniken zerlegen die ursprüngliche Zeichenfolge in Ein-Zeichen-Zeichenfolgen anstelle von char-Primitiven, und beide sind mit einem großen Overhead in Form von Objekterstellung und Zeichenfolgenmanipulation verbunden. Vergleichen Sie dies mit dem Aufruf von charAt() in einer for-Schleife, der praktisch keinen Overhead verursacht.