2. Entrada y salida de datos por consola
2.1 Clase Scanner para entrada de datos
La clase Scanner esta disponible a partir de Java 5 y facilita la lectura de datos. Para usarla debemos importar el paquete java.util.
import java.util.Scanner;
1. Creamos un objeto de tipo Scanner
Scanner sc = new Scanner(System.in);
2. Lo usamos
- int n;
- n = sc.nextInt();
2.2 Funcionamiento de la clase Java Scanner
De forma resumida podemos decir que cuando se introducen caracteres por teclado, el objeto Scanner toma toda la cadena introducida y la divide en elementos llamados tokens. Para separar los tokens se usa el espacio en blanco.
Por ejemplo introducimos:
Esto es un ejemplo, lectura de datos
Scanner divide la cadena en los siguientes tokens:
Esto
es
un
ejemplo,
lectura
de
datos
Para acceder a estos tokens, usamos estos métodos:
|
Método
|
Descripción
|
|
nextXxx()
|
Devuelve el siguiente token como un tipo básico. Xxx es el tipo de
dato. Por ejemplo, nextInt(), para leer un entero, nextDouble() para leer un doublé,
etc
|
|
necxt()
|
Devuelve el siguiente token como un String
|
|
nextLine()
|
Devuelve la línea entera como un String. Elimina el final \n del
buffer
|
|
hasNext()
|
Devuelve un boolean. Indica si existe o no un siguiente token para
leer
|
|
hasNextXxx()
|
Devuelve un boolean. Indica si existe o no un siguiente token del
tipo especificado en Xxx
|
|
useDelimiter(String)
|
Establece un nuevo delimitador de token, en String lo sustituimos por
el delimitador
|
2.2.2 Cómo limpiar el buffer de entrada en Java
Cuando en un programa se leen por teclado datos numéricos y datos de tipo carácter o String debemos tener en cuenta que al introducir los datos y pulsar intro, estamos también introduciendo en el buffer de entrada el intro.
Buffer de entrada si se introduce un 5: 5\n
n = sc.nextInt();
Buffer de entrada después de leer el entro: \n
Para 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, esto se hace así:
sc.nextLine();
Ejercicios:
1. Crea un programa que pida por consola el nombre, edad y fecha de nacimiento, (acuerdate de limpiar el buffer) y muestra por pantalla el siguiente mensaje: "Hola [nombre], usted tiene [años] y nacio en [año_nacimiento], es un placer"
No hay comentarios:
Publicar un comentario