IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Collection et Stream Java Discussion :

Problème avec Scanner


Sujet :

Collection et Stream Java

  1. #1
    Membre averti
    Inscrit en
    Décembre 2006
    Messages
    53
    Détails du profil
    Informations personnelles :
    Âge : 36

    Informations forums :
    Inscription : Décembre 2006
    Messages : 53
    Par défaut Problème avec Scanner
    Bonjour, j'ai un petit souci avec la classe Scanner, voici mon code où j'ai mon problème:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    import java.util.*;
    public class Test{
    public static void main (String args[]){
    Scanner in=new Scanner(System.in);
    System.out.println("Entrez le numéro de la personne");
    int num=in.nextInt();
    System.out.println("Entrez le nom de la personne:");
    String nom=in.nextLine();
    System.out.println("Entrez le prénom de la personne:");
    String prenom=in.nextLine();
    System.out.println();
    System.out.println("Le numéro de la personne est: "+num);
    System.out.println("Le nom de la personne est: "+nom);
    System.out.println("Le nom de la personne est: "+prenom);
    }
    }
    Je saisis le numéro, aprés il me donne les deux messages pour saisir le nom et le prénom, j'entre mon texte et l'exécution s'achève alors que moi j'ai saisi que 2 fois au lieu de 3 fois, et je ne vois pas où est le problème dans le code, veuillez me guider et merci.

  2. #2
    Membre Expert
    Avatar de afrikha
    Profil pro
    Étudiant
    Inscrit en
    Août 2005
    Messages
    1 600
    Détails du profil
    Informations personnelles :
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2005
    Messages : 1 600
    Par défaut
    Salut,

    Essaye de remplacer nextLine() par next() pour voir.

    @+


    Mes publications
    Lisez
    Les régles du forum
    Pensez au bouton

  3. #3
    Membre averti
    Inscrit en
    Décembre 2006
    Messages
    53
    Détails du profil
    Informations personnelles :
    Âge : 36

    Informations forums :
    Inscription : Décembre 2006
    Messages : 53
    Par défaut
    Oui, ca a marché!! Merci.
    Mais je voudrais bien savoir la différence entre next() et nextLine() ??

  4. #4
    Membre Expert
    Avatar de afrikha
    Profil pro
    Étudiant
    Inscrit en
    Août 2005
    Messages
    1 600
    Détails du profil
    Informations personnelles :
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2005
    Messages : 1 600
    Par défaut
    Citation Envoyé par sonorc
    Mais je voudrais bien savoir la différence entre next() et nextLine() ??
    Pour cela direction la javadoc de la classe Scanner.

    Sinon si tu es en Java 6 il y a la classe Console qui a étée introduite et qui est peut-être plus appropriée pour lire sur l'entrée standard...

    @+


    Mes publications
    Lisez
    Les régles du forum
    Pensez au bouton

  5. #5
    Membre averti
    Inscrit en
    Décembre 2006
    Messages
    53
    Détails du profil
    Informations personnelles :
    Âge : 36

    Informations forums :
    Inscription : Décembre 2006
    Messages : 53
    Par défaut
    Ce que je ne compend pas c'est que quand je supprime l'insertion du numero (in.nextInt) les in.nextLine() marchent normalement sans aucun problème!!
    Et pour la javadoc je suis pas fort en anglais donc pas moyen de bien comprendre la différence entre les deux méthodes!

  6. #6
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 5
    Par défaut Explications différence entre next et nextLine
    En fait, la lecture par nextInt ne "consomme pas" la fin de ligne que vous retrouvez ensuite lors de la lecture par nextLine.

    D'une manière générale, les "espaces blancs" (espace, fin de ligne...) servent de délimiteur de l'information lue. La plupart des méthodes (next, nextInt...) commencent par consommer les éventuels espaces blancs avant de lire une information.
    Mais la méhtode nextLine, quant à elle, lit tous les caractères qu'elle rencontre, même s'il s'agit d'espaces blancs, jusqu'à la rencontre d'une fin de ligne, en consommant cette dernière,
    Ceci explique le comportement obtenu.
    A noter que l'on peut toujours forcer la consommation de tous les caractères restant sur une ligne par une simple instruction :
    in.nextLine() ;
    (in étant le Scanner associé au clavier).

  7. #7
    Membre averti
    Inscrit en
    Décembre 2006
    Messages
    53
    Détails du profil
    Informations personnelles :
    Âge : 36

    Informations forums :
    Inscription : Décembre 2006
    Messages : 53
    Par défaut
    Donc pour régler le problème vaut mieux utiliser nextLine() et faire les conversions nécessaires pour lire les numéros.
    Mais maintenant j'utilise BufferedReader, et avec cette classe je ne trouve plus de problème, juste que ce n'est pas pratique de mettre à chaque fois les try catch, mais bon. Vraiment je te remercie pour tes explications.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Problèmes avec Scanner
    Par milleniu dans le forum Débuter avec Java
    Réponses: 4
    Dernier message: 26/03/2013, 15h14
  2. Problème avec Scanner.nextline
    Par Woufeigh dans le forum Langage
    Réponses: 2
    Dernier message: 20/03/2013, 15h26
  3. Problème avec java.util.Scanner
    Par fab56 dans le forum Eclipse Java
    Réponses: 6
    Dernier message: 16/09/2009, 21h25
  4. [FreeBSD] Problème avec le scanner
    Par michael_10 dans le forum BSD
    Réponses: 0
    Dernier message: 02/12/2007, 17h07
  5. Problème avec mon scanner Epson stylus 3200
    Par kanu27 dans le forum Périphériques
    Réponses: 1
    Dernier message: 30/11/2007, 19h48

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo