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

Existe-t-il un moyen de récupérer également le délimiteur, dans ce cas tous les signes de ponctuation? Par exemple, "Ceci est un test, et est-ce aussi un test?"Comment obtenir le délimiteur d'un StringTokenizer?

Je veux que le résultat de tokenization inclut également les deux jetons, et?

Est-ce possible?

+1

utilisateur le constructeur 3 param https://docs.oracle.com/javase/8/docs/api/java/util/StringTokenizer.html # StringTokenizer-java.lang.String-java.lang.String-boolean- –

Répondre

3

StringTokenizer a un constructeur surchargé qui prend un troisième argument boolean. Réglage à true fera le tokenzier retourner les délimiteurs aussi:

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

C'est cool! J'ai testé l'utilisation "\\ s" pour représenter un espace, pourquoi ça ne marche pas? – user697911

+1

@ user697911 'StringTokenzer' prend une chaîne de caractères à utiliser comme délimiteurs, pas une expression régulière. L'utilisation de '" \\ s "' en tant qu'argument du délimiteur aura pour résultat que ''\'' et '' s'' seront utilisés comme délimiteurs, et non comme espace blanc. – AJNeufeld