Scanner en Java
===============
Esta clase la que nos permitirá ingresar datos por teclado.
Scanner es la mejor clase para recibir información a través del teclado y nos permite capturar datos primitivos tipo int, double, string y varios más, que han sido introducidos por el usuario.
next() → Lee un String hasta encontrar un delimitador, generalmente un espacio.
nextBoolean() → Lee valores booleanos.
nextByte() → Lee valores byte que ingresan por teclado.
nextDouble() → Lee valores decimales (double) introducidos por el usuario.
nextFloat() → Recibe los valores float, que ingresan.
nextShort() → Lee un dato de tipo short.
nextInt() → Para leer datos del tipo entero.
nextLong() → Para leer un dato del tipo long.
nextLine() → Lee un String hasta encontrar un salto de línea.
close() → Cierra la clase Scanner luego de utilizada
Esta clase la que nos permitirá ingresar datos por teclado.
Scanner es la mejor clase para recibir información a través del teclado y nos permite capturar datos primitivos tipo int, double, string y varios más, que han sido introducidos por el usuario.
next() → Lee un String hasta encontrar un delimitador, generalmente un espacio.
nextBoolean() → Lee valores booleanos.
nextByte() → Lee valores byte que ingresan por teclado.
nextDouble() → Lee valores decimales (double) introducidos por el usuario.
nextFloat() → Recibe los valores float, que ingresan.
nextShort() → Lee un dato de tipo short.
nextInt() → Para leer datos del tipo entero.
nextLong() → Para leer un dato del tipo long.
nextLine() → Lee un String hasta encontrar un salto de línea.
close() → Cierra la clase Scanner luego de utilizada
El buffer de entrada de datos de la clase Scanner
-----------------------------------------------------------------
Un buffer, recibe los datos del usuario. El buffer recibirá por un lado el dato enviado y por otro la pulsación del ENTER en un código Ascii.
Ejemplo:
public class Ejemplo {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("Ingresa tu edad: ");
int edad = sc.nextInt();
System.out.print("Ingresa tu nombre: ");
String nombre = sc.nextLine();
System.out.println("El nombre es " + nombre + " la edad es " + edad);
}
}
Resultado: Ingresa tu edad: 20
Ingresa tu nombre:
El nombre es la edad es 20
El buffer de la clase scanner almacena el dato ingresado y el salto de línea(string).
El nextInt extrae del buffer y toma el dato entero y lo asigna en la variable edad (int), en el buffer queda guardado el intro. el buffer tiene que estar vacío para poder recibir nuevos datos.
El nextLine extrae del buffer toma todo los caracteres hasta antes de llegar al intro y elimina el intro del buffer, por lo tanto solo se asigna una cadena vacía a la variable nombre(String).
Solución:
Se debe limpiar el buffer de entrada si se van a leer datos de tipo carácter a > continuación de la lectura de datos numéricos.
La forma más sencilla de limpiar el buffer de entrada en Java es ejecutar la instrucción:
sc.nextLine();
No hay comentarios:
Publicar un comentario