Lecture de l'entrée clavier mot par mot [Résolu]

Signaler
-
cs_Julien39
Messages postés
6413
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
17 mai 2018
-
Bonjour,

Comment on peut lire des string a partir de l'écran mot par mot en java ?

Merci

3 réponses

Messages postés
16103
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
23 janvier 2020
88
Pourquoi utiliser StringTokenizer ? Cette classe ne devrait plus être utilisé, c'est marqué dans la documentation.

StringTokenizer is a legacy class that is retained for compatibility reasons although its use is discouraged in new code. It is recommended that anyone seeking this functionality use the split method of String or the java.util.regex package instead.

Donc soit on utilise split comme proposé :

String[] tab = str.split(" ");
for (String s : tab)
   System.out.println(s);

Soit on customise un peu le Scanner que tu as déjà mis en place.

Scanner sc = new Scanner(System.in);
sc.useDelimiter(" ");
System.out.println("Entrez votre texte");
while (sc.hasNext())
    System.out.println(sc.next());

Dans les deux cas on utilise une expressions régulière, qui est certes ici très simple puisque ce n'est que
" "
.
Messages postés
6413
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
17 mai 2018
255
Salut,

Scanner sc = new Scanner(System.in);
System.out.println("Entrez votre texte");
String str = sc.nextLine();
StringTokenizer st = new StringTokenizer(str);
while(st.hasMoreToken()){
   System.out.println(st.nextToken());
}
cs_Julien39
Messages postés
6413
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
17 mai 2018
255
Tiens, je ne savais pas !
Je pensais que StringTokenizer était à préférer à split lorsque l'expression régulière était simple.
Merci pour l'info
Messages postés
6413
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
17 mai 2018
255
Salut,

J'ai édité le titre et le message qui n'étaient pas très clairs, fais attention la prochaine fois.