Este problema pasa cuando queremos leer un tipo de dato numético, sea del tipo que sea y seguidamente queremos leer un String. Por ejemplo:
import java.util.Scanner; public class Programa { public static void main(String[] args) { Scanner sca = new Scanner(System.in); int edad; String nombre; System.out.println("Introduce edad: "); edad = sca.nextInt(); System.out.println("Introduce nombre: "); nombre = sca.nextLine(); } }
En este caso pediremos por consola la edad, cuando le demos al enter se mostrará el texto "Introduce nombre: " pero seguidamente acabará el programa y se saltará esa línea.
Esto se debe a que cuando introducimos el número y le damos al enter, se guarda el enter del Scanner y cuando llama al método nextLine() como guarda el enter automáticamente salta pensando que hemos pulsado enter sin introducir nada.
¿Cómo solucionamos este problema?
Pues para solucionar este problema tenemos 3 soluciones:1-Leer el tipo de dato como String y luego hacer un casting y convertirlo al tipo de dato que queramos.
2-Después de leer el tipo de dato entero introducimos un nextLine(). Como por ejemplo:
import java.util.Scanner; public class Programa { public static void main(String[] args) { Scanner sca = new Scanner(System.in); int edad; String nombre; System.out.println("Introduce edad: "); edad = sca.nextInt(); sca.nextLine(); System.out.println("Introduce nombre: "); nombre = sca.nextLine(); } }
3-La tercera opción es la de utilizar el método skip("\n");
import java.util.Scanner; public class Programa { public static void main(String[] args) { Scanner sca = new Scanner(System.in); int edad; String nombre; System.out.println("Introduce edad: "); edad = sca.nextInt(); sca.skip("\n"); System.out.println("Introduce nombre: "); nombre = sca.nextLine(); } }
Graciassss c:
ResponderEliminarGraciaaaaaass
ResponderEliminarMuchas gracias, me solucionaste la vida. :D
ResponderEliminargracias de verdad te amo
ResponderEliminarMuchisimas gracias
ResponderEliminarMuchas gracia
ResponderEliminarAishhhhhhhhhhhhhhh me salvaste la vida
ResponderEliminarGracias
ResponderEliminarMuchas Gracias
ResponderEliminarMuchas gracias, me ayudaste con ese error en mi proyecto final.
ResponderEliminargracias
ResponderEliminarLa sugerencia funcionó de maravilla. Gracias
ResponderEliminar