Saltar la navegación

7.3.- Entrada por teclado. Clase Scanner.

La entrada por teclado que hemos visto en el apartado anterior tiene el inconveniente de que sólo podemos leer de manera fácil tipos de datos String. Si queremos leer otros tipos de datos deberemos convertir la cadena de texto leída en esos tipos de datos.

El kit de Desarrollo de Java, a partir de su versión 1.5, incorpora la clase java.util.Scanner, la cual permite leer tipos de datos String, int, long, etc., a través de la consola de la aplicación. Por ejemplo para leer un tipo de datos entero por teclado sería:

Scanner teclado = new Scanner (System.in); 

int i = teclado.nextInt (); 
Código de la clase EntradaTecladoScanner que pide varios tipos de datos  por teclado y después muestra los valores leídos por pantalla.
Mª Flor Moncada Añón (CC BY-NC)

O bien esta otra instrucción para leer una línea completa, incluido texto, números o lo que sea:

String cadena = teclado.nextLine();

 

En las instrucciones anteriores hemos creado un objeto de la clase Scanner llamado teclado utilizando el constructor de la clase, al cual le hemos pasado como parámetro la entrada básica del sistema System.in que por defecto está asociada al teclado.

Para conocer cómo funciona un objeto de la clase Scanner te proporcionamos el siguiente ejemplo:

Código de entrada por teclado con la clase Scanner.

Debes conocer

Al instanciar un objeto de una determinada clase, es probable que previamente tengamos que importarla: en otro caso obtendremos un error de compilación pues Netbeans no conoce el paquete que contiene la clase a instanciar.

Como se puede observar en la imagen, si haces click sobre el círculo rojo en el número de línea con el error, Netbeans nos sugiere soluciones al error. Fíjate que la primera sugerencia es importar la clase Scanner. Se seleccionar, Netbeans automáticamente generará el import y el error estará solucionado. ¡Mas ayudas para el programador!

Ilustración que muestra como Netbeans puede hacer import automáticamente
Ministerio de Educación y FP (CC BY-NC)