java.util.InputMismatchException son ScannerInt

publicado por: Anonymous

Buenas posteo esto por que a pesar de que lo he solucionado para que se me vea bien no entiendo por que me da. Espero me podais ayudar, tengo el siguiente código.

 package com.example.ejercicio1;

import java.util.Scanner;

class Ejercicio1 {
    int edad;
    String nombre, apellidos;
    Scanner teclado;
public void inicializar() {
    teclado=new Scanner(System.in);
    System.out.println("Ingrese nombre:");
    nombre=teclado.next();

    System.out.println("Ingrese sus apellidos");
    apellidos=teclado.next();

    System.out.println("Ingrese edad:");
    edad = teclado.nextInt();

}

public void imprimir(){
    System.out.println("El usuario se llama " + nombre + " " + apellidos);
}

public void esMayor(){
    if(edad > 18){
        System.out.println("El usuario  es mayor de edad");
    }else {
        System.out.println("No cumple la edad mínima");
    }
}

public static void main(String[] args) {
    Ejercicio1 ejercicio1;

    ejercicio1 = new Ejercicio1();
    ejercicio1.inicializar();
    ejercicio1.imprimir();
    ejercicio1.esMayor();
}

}

Y me da el siguiente error
Ingrese nombre:
David
Ingrese sus apellidos
Ventas marin
Ingrese edad:

Exception in thread “main” java.util.InputMismatchException at
java.util.Scanner.throwFor(Scanner.java:864) at
java.util.Scanner.next(Scanner.java:1485) at
java.util.Scanner.nextInt(Scanner.java:2117) at
java.util.Scanner.nextInt(Scanner.java:2076) at
com.example.ejercicio1.Ejercicio1.inicializar(Ejercicio1.java:19) at
com.example.ejercicio1.Ejercicio1.main(Ejercicio1.java:39)

Pero si cambio la linea 19 y 18 y la pongo encima de apellidos me va bien… alguno que sepa por qué.

Gracias

solución

Te da un MismatchException por que al usar un getNext() en lugar de un getNextLine() no te está recogiendo en la entrada el ny por tanto cuando intenta hacer el getNextInt() está analizando la cadena “n35” en lugar del número 35.

Respondido por: Anonymous

Leave a Reply

Your email address will not be published. Required fields are marked *