sábado, 16 de marzo de 2013

Diferencia entre next y nextLine en Java


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

5 comentarios:

  1. era todo lo que me hacia falta :)

    ResponderEliminar
  2. como puedo meter dos lineas tipo string que por alguna razon se salta la segunda linea

    ResponderEliminar
  3. como puedo meter dos lineas tipo string que por alguna razon se salta la segunda linea

    ResponderEliminar
    Respuestas
    1. Eso 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:
      Scanner 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());

      Eliminar


Entradas populares