In den vorherigen Abschnitten haben wir gelernt, wie man die Methode split() der Klasse String zum Zerlegen eines Strings verwendet. In diesem Abschnitt erfahren wir, wie man das Objekt StringTokenizer zum Zerlegen eines Strings verwendet verwendet keine regulären Ausdrücke als Trennzeichen.
Zunächst müssen wir ein Konzept kennen – Sprachsymbole . Die sogenannten Sprachsymbole bedeuten, dass wir bei der Analyse einer Zeichenfolge die Zeichenfolge in Wörter zerlegen, die unabhängig verwendet werden können, und diese Wörter werden Sprachsymbole genannt.
Zum Beispiel für die Zeichenfolge: Wenn Leerzeichen als Trennzeichen der Zeichenfolge verwendet werden, enthält die Zeichenfolge drei Wörter, dh drei Sprachsymbole. Für die Zeichenfolge „Sie sind herzlich willkommen“, wenn das Komma als Trennzeichen der Zeichenfolge verwendet wird, verfügt die Zeichenfolge auch über drei Sprachsymbole.
Wenn wir eine Zeichenfolge analysieren und die Zeichenfolge in Wörter zerlegen, die unabhängig verwendet werden können, können wir die Klasse StringTokenizer im Paket java.util verwenden, das über zwei häufig verwendete Konstruktoren verfügt:
Erstellen Sie einen Parser für die Zeichenfolge s und verwenden Sie dabei die Standardtrennzeichen , d. h. Leerzeichen (mehrere Leerzeichen werden als ein Leerzeichen betrachtet), Zeilenvorschubzeichen, Wagenrücklaufzeichen, Tabulatorzeichen und Vorschubzeichen als Trennzeichen.
Konstruiert einen Parser für die Zeichenfolge s. Die Zeichen im Parameter delim werden als Trennzeichen verwendet.
Hinweis : Jede Kombination von Trennzeichen ist immer noch ein Trennzeichen.
Zum Beispiel:
StringTokenizerfenxi=newStringTokenizer(youarewelcome);StringTokenizerfenxi=newStringTokenizer(you,are;welcome,,;);
Rufen Sie ein StringTokenizer-Objekt als String-Analysator auf, um die Sprachsymbole in der Zeichenfolge nacheinander abzurufen. Jedes Mal, wenn nextToken() aufgerufen wird Wenn ein Sprachsymbol erhalten wird, wird der Wert der Zählvariablen im String-Analysator automatisch um 1 dekrementiert. Der Anfangswert der Zählvariablen entspricht der Anzahl der Wörter in der Zeichenfolge.
Normalerweise wird eine while-Schleife verwendet, um Sprachsymbole einzeln abzurufen. Um die Schleife zu steuern, können Sie die Methode hasMoreTokens() in der StringTokenizer-Klasse verwenden, solange die Zeichenfolge, also der Wert, Sprachsymbole enthält Wenn die Zählvariable größer als 0 ist, gibt diese Methode „true“ zurück, andernfalls gibt sie „false“ zurück. Darüber hinaus können Sie den Analysator jederzeit die Methode countTokens() aufrufen lassen, um den Wert der Zählvariablen im Analysator abzurufen.
Zum Beispiel:
importjava.util.*;publicclassMain{publicstaticvoidmain(Stringargs[]){Strings=welcometodotcpp(thankyou),nicetomeetyou;StringTokenizerfenxi=newStringTokenizer(s,(),);intnumber=fenxi.countTokens();while(fenxi.hasMoreTokens() ){Stringstr=fenxi.nextToken();System.out.print(str+);}System.out.println(Gesamtzahl der Wörter: +Anzahl+);}}
Die Laufergebnisse sind wie folgt:
Welcometodotcppthankyounicetomeetyou Gesamtzahl der Wörter: 9