Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1471 connectés 

  FORUM HardWare.fr
  Programmation
  Java

  Problème de l'utilisation de Scanner ( dans java )

 



 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Problème de l'utilisation de Scanner ( dans java )

n°2093416
relax00587
Posté le 05-08-2011 à 02:38:31  profilanswer
 

Bonjour, je suis un débutant en JAVA extrêmement motivé, et après une journée entière de recherche je suis désespéré en j'en viens à vous demander de l'aide ...
 
Voici mes lignes de codes :
 
import java.util.Scanner;
 
 
public class Zouzou {
 
 /**
  * @param args
  */
 public static void main(String[] args) {
  // TODO Auto-generated method stub
 
 Scanner sc = new Scanner(System.in);
 String nom;
 System.out.println("Quel est votre prénom ? JOJO" );
 nom = sc.nextLine();
 System.out.println("Bonjour" +nom ); }
}
     
 
Voila c'est très simple ... mais mon soucis est lorsque je démarre le " programme " seule cette phrase s'affiche dans ma console : Quel est votre prénom ? JOJO
 
Je ne comprends pas pourquoi l'outils scanner ne reconnais pas le reste ... et cela me bloque complètement pour la suite de mon apprentissage....
 
Je vous remercie infiniment !
 
Zac.


Message édité par relax00587 le 05-08-2011 à 13:26:20
mood
Publicité
Posté le 05-08-2011 à 02:38:31  profilanswer
 

n°2093445
gilou
Modérateur
Modzilla
Posté le 05-08-2011 à 10:55:48  profilanswer
 

Citation :

Je ne comprends pas pourquoi l'outils scanner ne reconnais pas le reste

:??:  
Si tu tapes qque chose (suivi de retour chariot) après qu'il ait affiché "Quel est votre prénom ? JOJO" il se passe quoi?
A+,


---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
n°2093471
relax00587
Posté le 05-08-2011 à 13:13:11  profilanswer
 

Salut, merci d'avoir répondu.
 
Bin si je tappe quelque chose après, cette chose s'affiche bel et bien dans la console.
 
Cependant tout fonctionne comme si le programme oubliait complètement ces deux lignes de code :
 
 nom = sc.nextLine();
 System.out.println("Bonjour" +nom )
 
Le plus intriguant c'est que Eclipse ne me signale pas d'erreur dans la saisie. Tout semble aller bien.
 
 
 

n°2093536
gilou
Modérateur
Modzilla
Posté le 05-08-2011 à 16:47:43  profilanswer
 

relax00587 a écrit :

Salut, merci d'avoir répondu.
 
Bin si je tappe quelque chose après, cette chose s'affiche bel et bien dans la console.
 
Cependant tout fonctionne comme si le programme oubliait complètement ces deux lignes de code :
 
 nom = sc.nextLine();
 System.out.println("Bonjour" +nom )
 
Le plus intriguant c'est que Eclipse ne me signale pas d'erreur dans la saisie. Tout semble aller bien.
 
 
 

Donc tu ne comprends pas ce que fait ton programme.  
Que voudrais tu donc avoir dans nom quand il fait sc.nextLine(); ?
A+,
 


---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
n°2093567
relax00587
Posté le 05-08-2011 à 20:59:25  profilanswer
 

Je voudrais qu'il récupère ce que j'ai tappé ( à savoir le dernier mot de la ligne précédente ), et ainsi  qu'il définisse le nom = JOJO
 
C'est bien le principe du Scanner , non ?

n°2093569
gilou
Modérateur
Modzilla
Posté le 05-08-2011 à 21:06:24  profilanswer
 

Sauf que justement, la, tu as pas tapé le texte.
Le scanner, il va récupérer le texte de System.in, par construction, tandis que toi, tu envoies du texte sur System.out (qui de toute façon n'est pas dispo en lecture, il me semble).
A+,


---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
n°2093592
relax00587
Posté le 05-08-2011 à 22:21:25  profilanswer
 

ah, et comment dois je modifier mon code pour que le scanner puisse récupérer mon texte ? où dois je taper mon texte ?

n°2093606
relax00587
Posté le 05-08-2011 à 23:11:22  profilanswer
 

je veux que s'affiche dans ma console :
 
Quel est votre prénom ? JOJO
 
Bonjour JOJO
 
Je veux que le programme recupère l'entrée " JOJO "

n°2093616
gilou
Modérateur
Modzilla
Posté le 06-08-2011 à 01:38:34  profilanswer
 

Code :
  1. import java.util.Scanner;
  2.  
  3. public class Zouzou {
  4.  
  5.    /**
  6.     * @param args
  7.     */
  8.    public static void main(String[] args) {
  9.     // TODO Auto-generated method stub
  10.  
  11.     String texte = "Quel est votre prénom ? JOJO";
  12.     System.out.println(texte);
  13.     Scanner sc = new Scanner(texte);
  14.     String nom = "";
  15.     while (sc.hasNext()) {
  16.         nom = sc.next();
  17.     }
  18.     System.out.println("Bonjour " +nom ); }
  19. }


A+,


---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
n°2093617
relax00587
Posté le 06-08-2011 à 03:12:39  profilanswer
 

Merci effectivement cela fonctionne =) !!!!
 
Je m'étais enfaite inspiré de ce tutoriel, qui visiblement ne fonctionne pas !
 
http://www.siteduzero.com/tutoriel [...] avier.html
 
C'est très étrange ... qu'en penses tu ?

mood
Publicité
Posté le 06-08-2011 à 03:12:39  profilanswer
 

n°2093618
relax00587
Posté le 06-08-2011 à 03:23:50  profilanswer
 

une question également ...
 
pourquoi a t-on  
String nom = "";
 
et non pas simplement  
String nom;  
( sous forme classique : type de variable + nom de variable )

Message cité 1 fois
Message édité par relax00587 le 06-08-2011 à 03:24:09
n°2093643
gilou
Modérateur
Modzilla
Posté le 06-08-2011 à 13:03:27  profilanswer
 

relax00587 a écrit :

Merci effectivement cela fonctionne =) !!!!
 
Je m'étais enfaite inspiré de ce tutoriel, qui visiblement ne fonctionne pas !
 
http://www.siteduzero.com/tutoriel [...] avier.html
 
C'est très étrange ... qu'en penses tu ?

Je pense que tu n'as pas compris l'exemple:

Code :
  1. Scanner sc = new Scanner(System.in);
  2. System.out.println("Veuillez saisir un mot :" );
  3. String str = sc.nextLine();
  4. System.out.println("Vous avez saisi : " + str);


La 3e ligne:
Le code attends que tu saisisse quelque chose au clavier, et tu fasses retour chariot ensuite.
Quand c'est fait, ce qui a été tapé est envoyé dans System.in, et c'est pour ça que ton scanner (déclaré comme new Scanner(System.in)) peut scanner le texte tapé.
A+,


---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
n°2093645
gilou
Modérateur
Modzilla
Posté le 06-08-2011 à 13:09:08  profilanswer
 

relax00587 a écrit :

une question également ...
 
pourquoi a t-on  
String nom = "";
 
et non pas simplement  
String nom;  
( sous forme classique : type de variable + nom de variable )

Parce que ça plait pas au compilateur java, qui pense que si sc.hasNext() renvoie faux, on va jamais faire nom = sc.next(), et donc qu'on va arriver à System.out.println("Bonjour " +nom ); avec une variable nom pas initialisée (et donc comme toute variable de type pas primitif, initialisée par défaut à null). Alors que si j'initialise nom avec une chaine vide, ça lui convient.
A+,


---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
n°2093667
relax00587
Posté le 06-08-2011 à 16:26:57  profilanswer
 

gilou a écrit :

Je pense que tu n'as pas compris l'exemple:

Code :
  1. Scanner sc = new Scanner(System.in);
  2. System.out.println("Veuillez saisir un mot :" );
  3. String str = sc.nextLine();
  4. System.out.println("Vous avez saisi : " + str);


La 3e ligne:
Le code attends que tu saisisse quelque chose au clavier, et tu fasses retour chariot ensuite.
Quand c'est fait, ce qui a été tapé est envoyé dans System.in, et c'est pour ça que ton scanner (déclaré comme new Scanner(System.in)) peut scanner le texte tapé.
A+,


 
Je suis vraiment désolé mais quand je tape :
 
    Scanner sc = new Scanner(System.in);
    System.out.println("Veuillez saisir un mot : JOJO" );
    String str = sc.nextLine();
    System.out.println("Vous avez saisi : " + str);
 
La console me donne :
 
     Veuillez saisir un mot : JOJO
 
     Vous avez saisi : (//ici il y a un blanc)
 
:( :(
 
 
 

n°2093693
gilou
Modérateur
Modzilla
Posté le 06-08-2011 à 18:55:47  profilanswer
 

Eh bien c'est que tu as un problème avec ton environnement java, parce que dans une console, voici ce que j'obtiens:

C:\Java>java Zouzou
Veuillez saisir un mot : JOJO


Et la ça attend mon entrée au clavier, pour l'éternité, si jamais je tape rien.
A+,


---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Java

  Problème de l'utilisation de Scanner ( dans java )

 

Sujets relatifs
problème sur tableau C++Problème compatibilité IE9 et IE7
VBA - Problème avec ImageComboBoxProblème d'espaces entre des tableaux ?!
Probleme dreamweaverJExcel API Problème avec les types de variables
Problème de téléchargement FTP[Qt] Utilisation de telnet dans une application
[Qt] Probleme avec la librairie QwtProblème de positionnement
Plus de sujets relatifs à : Problème de l'utilisation de Scanner ( dans java )


Copyright © 1997-2018 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR