Dans les sections précédentes, nous avons appris à utiliser la méthode split() de la classe String pour décomposer une chaîne. Dans cette section, nous allons apprendre à utiliser l'objet StringTokenizer pour décomposer une chaîne. Contrairement à la méthode split(), l'objet StringTokenizer. n'utilise pas d'expressions régulières comme marque de séparation.
Tout d'abord, nous devons connaître un concept - les symboles du langage . Les symboles dits du langage signifient que lorsque nous analysons une chaîne, nous décomposons la chaîne en mots qui peuvent être utilisés indépendamment, et ces mots sont appelés symboles du langage.
Par exemple, pour la chaîne Vous êtes les bienvenus, si des espaces sont utilisés comme marque de délimitation de la chaîne, alors la chaîne comporte trois mots, c'est-à-dire trois symboles de langue. Pour la chaîne Vous êtes, bienvenue, si la virgule est utilisée comme marque de délimitation de la chaîne, alors la chaîne comporte également trois symboles de langue.
Lorsque nous analysons une chaîne et décomposons la chaîne en mots pouvant être utilisés indépendamment, nous pouvons utiliser la classe StringTokenizer dans le package java.util, qui possède deux constructeurs couramment utilisés :
Construisez un analyseur pour la chaîne s, en utilisant les délimiteurs par défaut , c'est-à-dire les caractères d'espace (plusieurs espaces sont considérés comme un seul espace), les caractères de saut de ligne, les caractères de retour chariot, les caractères de tabulation et les caractères de saut comme marques de séparation.
Construit un analyseur pour la chaîne s. Les caractères du paramètre delim sont utilisés comme délimiteurs.
Remarque : Toute combinaison de délimiteurs reste un délimiteur.
Par exemple:
StringTokenizerfenxi=newStringTokenizer(vous êtes les bienvenus);StringTokenizerfenxi=newStringTokenizer(vous,êtes;bienvenue,,;);
Appelez un objet StringTokenizer un analyseur de chaîne. Un analyseur peut utiliser la méthode nextToken() pour obtenir les symboles de langue dans la chaîne un par un. Chaque fois que nextToken() est appelé, le symbole de langue suivant sera obtenu dans la chaîne à chaque fois. un symbole de langue est obtenu, la valeur de la variable de comptage dans l'analyseur de chaîne est automatiquement décrémentée de 1. La valeur initiale de la variable de comptage est égale au nombre de mots de la chaîne.
Habituellement, une boucle while est utilisée pour obtenir les symboles de langue un par un. Afin de contrôler la boucle, vous pouvez utiliser la méthode hasMoreTokens() dans la classe StringTokenizer tant qu'il y a des symboles de langue dans la chaîne, c'est-à-dire la valeur. de la variable count est supérieur à 0, cette méthode renvoie vrai, sinon elle renvoie faux. De plus, vous pouvez demander à l'analyseur d'appeler la méthode countTokens() à tout moment pour obtenir la valeur de la variable count dans l'analyseur.
Par exemple:
importjava.util.*;publicclassMain{publicstaticvoidmain(Stringargs[]){Strings=welcometodotcpp(merci),nicetomeetyou;StringTokenizerfenxi=newStringTokenizer(s,(),);intnumber=fenxi.countTokens();while(fenxi.hasMoreTokens() ){Stringstr=fenxi.nextToken();System.out.print(str+);}System.out.println(Total de mots : +nombre+);}}
Les résultats en cours d'exécution sont les suivants :
bienvenue à dotcpp mercinicetomeetyou total de mots: 9