2017-05-19 6 views
2
StringTokenizer tokenizer = new StringTokenizer(s, " ,.:;?![]'"); 

Gibt es eine Möglichkeit, auch das Trennzeichen abzurufen, in diesem Fall alle Interpunktionszeichen?Wie erhält man das Trennzeichen von einem StringTokenizer?

Zum Beispiel: "Dies ist ein Test, und ist das auch ein Test?"

Ich möchte das Ergebnis der Tokenisierung auch die beiden Token enthält, und?

Ist das möglich?

+1

Benutzer die 3 param Konstruktor https://docs.oracle.com/javase/8/docs/api/java/util/StringTokenizer.html # StringTokenizer-java.lang.String-java.lang.String-boolean- –

Antwort

3

StringTokenizer hat einen überladenen Konstruktor, der ein drittes boolean Argument benötigt. Setzen auf true machen die tokenzier die Trennzeichen zurück:

StringTokenizer tokenizer = new StringTokenizer(s, " ,.:;?![]'", true); 
// Here ---------------------------------------------------------^ 
+0

Das ist cool! Ich habe verwendet "\\ s", um einen Raum darzustellen, warum funktioniert es nicht? – user697911

+1

@ user697911 'StringTokenzer' verwendet eine Zeichenfolge als Trennzeichen, keinen regulären Ausdruck. Die Verwendung von "\\ s" 'als Begrenzungsargument führt dazu, dass" \ "und" s "als Begrenzer und nicht als Leerzeichen verwendet werden. – AJNeufeld

Verwandte Themen