Javafree
Página Inicial do Fórum > Java Básico

Problemas com o Scanner



Criar novo tópico   Responder tópico


  1. Rafah
    Posts:4


    Comment Arrow

    Publicado em: 05/08/2016 20:22:26

    Olá boa noite!
    Pessoal gostaria que me ajudassem em um problema aqui. Muitas vezes quando estou utilizando a classe Scanner e tento capturar uma informação do teclado ocorre um erro, acho que posso chamar assim. O problema é que durante a execução do programa o comando de leitura é ignorado. Vou exemplificar.

    System.out.println("Informe o seu nome: ";
    nome = entrada.nextLine();

    System.out.println("Informe o seu sobrenome: ";
    sobrenome= entrada.nextLine();

    Saida:
    Informe o seu nome: //Ele não pára aqui para receber a informação
    Informe o seu sobrenome:
    |
    //Aqui ele pára

    Nesses casos, faço uma gambiarra:
    System.out.println("Informe o seu nome: ";
    nome = entrada.nextLine();
    nome = entrada.nextLine();

    System.out.println("Informe o seu sobrenome: ";
    sobrenome= entrada.nextLine();

    Dá certo! kkkkkk
    Obs: Ele não não pede a mesma informação duas vezes. Por exemplo:

    System.out.println("Informe o seu nome: ";
    João
    João

    O problema é quando isso ocorre em um ciclo, como por exemplo o "do while".
    Então gostaria que me ajudassem a resolver isso! Desde já agradeço!

  1. Comment Arrow

    Publicado em: 09/08/2016 13:27:03

    Eai blz?

    O cara, isso acontece por causa do buffer do leitor de string, pode pesquisar mais sobre isso.

    Use em vez do nextline o next:

    System.out.println("Informe o seu nome: ";
    nome = entrada.next();

    System.out.println("Informe o seu sobrenome: ";
    sobrenome = entrada.next();

    System.out.println(nome+" "+sobrenome);

    _________________

    Att.

    OgustavoReis



  1. Rafah
    Posts:4


    Comment Arrow

    Publicado em: 09/08/2016 21:27:37

    Ah mano! Legal!
    A desvantagem é que vou receber apenas o primeiro nome da pessoa! Mas é uma boa solução!
    Obrigado!



  1. Relacionados