Problema na scanner

1 resposta
L

alguém pode me ajudar com o meu problema esse é o código

Scanner scanner = new Scanner(<a href="http://System.in">System.in</a>);

System.out.println(Digite o nome do aluno);

String nome = scanner.next();
System.out.println("Digite o sobrenome do aluno");
    String sobrenome = scanner.next();

    System.out.println("Digite o RGA do Aluno");
    int rga = scanner.nextInt();

    System.out.println("Digite o nome do curso do Aluno");
    String nomeDoCurso = scanner.next();

    System.out.println("Digite o ano");
    int ano = scanner.nextInt();

    System.out.println("Digite a média geral do aluno");
    double media = scanner.nextDouble();

se eu digito por exemplo “engenharia de software” no nome do curso
ele da uma exceção java.util.InputMismatchException

1 Resposta

FabioSaid

A classe Scanner pega os dados digitados pelo teclado como se fossem
Strings , se você for pegar um int,double você tem que fazer a conversão.

Sobre o método que você utiliza para pegar os dados next() ele é usado para capturar
até achar um espaço ou quebra de linha . no seu caso você deve usar o método nextLine() que é usado
para pegar toda a String até achar a quebra de linha.

seu código vai ficar assim:

Scanner scanner = new Scanner(System.in);
System.out.println("Digite o sobrenome do aluno: ");
String sobrenome = scanner.nextLine();

System.out.println("Digite o RGA do Aluno: ");
int rga = Integer.parseInt(scanner.nextLine());

System.out.println("Digite o nome do curso do Aluno: ");
String nomeDoCurso = scanner.nextLine();

System.out.println("Digite o ano");
int ano = Integer.parseInt(scanner.nextLine());

System.out.print("Digite a média geral do aluno");
double media =Double.parseDouble(scanner.nextLine());
Criado 2 de dezembro de 2017
Ultima resposta 3 de dez. de 2017
Respostas 1
Participantes 2