next() solo lee hasta donde encuentra un espacio (hasta un espacio).
nextLine() lee todo incluyendo espacios (hasta un enter).
A continuación, los siguientes métodos pueden ser útiles para la lectura de datos simples:
Scanner lector = new Scanner(System.in);
String p1 =
lector.next(); //lee una cadena de texto
String p2 =
lector.nextLine(); //lee una cadena de texto hasta fin de linea
int n1 = lector.nextInt(); //lee un numero entero
double n2 = lector.nextDouble(); //lee un numero de tipo double
float n3 = lector.nextFloat(); //lee un número de tipo flotante
Gracias
ResponderEliminarcomo puedo meter dos lineas tipo string que por alguna razon se salta la segunda linea
ResponderEliminarcomo puedo meter dos lineas tipo string que por alguna razon se salta la segunda linea
ResponderEliminarEso es un problema muy conocido de Scanner (y muy puñetero de paso). Tienes varias opciones para solucionarlo, crearte un objeto Scanner distinto para cada tipo de dato diferente que quieras recoger en tu programa y usar cada uno donde corresponda:
EliminarScanner tecladoLine = new Scanner(System.in);
Scanner tecladoInt = new Scanner(System.in);
O puedes crearte un solo Scanner y solo usar su método nextLine() pero haciendo "parse" cada vez que lo necesites:
Scanner scan = new Scanner(System.in);
int entero;
entero = Integer.parseInt(scan.nextLine());
thanks
ResponderEliminar