Dans les sections précédentes, nous avons appris comment utiliser split(String regex) de la classe String pour décomposer une chaîne, et comment utiliser la classe StringTokenizer pour analyser les mots dans une chaîne. Dans cette section, nous apprenons à utiliser les objets de la classe Scanner. pour analyser à partir de chaînes les données requises par le programme.
Il existe deux façons d'analyser les données requises par le programme : l'une consiste à utiliser la balise de délimiteur par défaut pour analyser la chaîne, et l'autre consiste à utiliser des expressions régulières comme balises de délimiteur pour analyser la chaîne. Dans cette section, nous apprendrons la première. méthode.
Pour analyser une chaîne à l'aide de la balise de délimiteur par défaut, nous devons créer un objet Scanner et transmettre la chaîne à analyser à l'objet construit, par exemple :
StringNBA=J'aime ce jeu ;
Afin d'analyser les mots en NBA, nous pouvons construire un objet Scanner :
Scannerscanner=nouveauScanner(NBA);
Ensuite, le scanner utilise des espaces comme délimiteurs pour analyser les mots de la chaîne. Les caractéristiques de l'opération d'analyse sont les suivantes :
1) Le scanner appelle la méthode next() pour renvoyer les mots de NBA dans l'ordre. Si le dernier mot de NBA a été renvoyé par la méthode next(), le scanner appelle hasNext() pour renvoyer false, sinon il renvoie true.
2) Pour les mots numériques dans la chaîne analysée, tels que 123, 1.23, etc., le scanner peut utiliser la méthode nextInt() ou nextDouble() au lieu de la méthode next(), c'est-à-dire que le scanner peut appeler nextInt( ) ou la méthode nextDouble(). Convertissez les mots numériques en données entières ou doubles et renvoyez-les.
3) Si le mot n'est pas un mot numérique, une exception InputMismatchException se produira lorsque le scanner appelle la méthode nextInt() ou nextDouble(). Lors de la gestion de l'exception, la méthode next() peut être appelée pour renvoyer le mot non numérique.