java

Leer datos introducidos por el usuario a través del teclado con Java

Con Java podemos leer datos del teclado (que son introducidos por el usuario) a través de la clase Scanner. En este post voy a explicar su uso un poco más detallado para manejar excepciones y también explicaré los otros métodos para leer un booleano, entero, flotante, cadena u otro tipo de dato.

Leer datos del teclado en Java (introducidos por el usuario) y validar números o cadenas al leer con Scanner

En resumen, veremos cómo leer datos introducidos por el teclado en Java, y además:

  • Instanciar de la clase Scanner
  • Manejo de excepciones al leer datos del teclado
  • Todos los métodos que existen con Scanner
  • Leer un entero, cadena, flotante y más tipos de datos

Vamos allá.

La clase Scanner y su import

Para tener la clase Scanner en Java (y para poder leer datos del teclado) debemos importar la clase con:

import java.util.Scanner;

Luego instanciamos un objeto de esa clase así:

Scanner escaner = new Scanner(System.in);

En donde indicamos que nuestra variable se llamará escaner y que es de tipo de entrada (System.in).

Una vez que ya tenemos nuestro objeto que lee datos del teclado, podemos comenzar a trabajar.

Leer datos del teclado con Scanner

Para leer algo que el usuario introduce, primero le mandamos un mensaje para que sepa lo que tiene que escribir. Después de ello llamamos a un método de Scanner dependiendo del tipo de dato que vayamos a escanear.

Aquí un ejemplo que hace todo eso:

See the gist on github.

Con eso nos damos cuenta que para leer una cadena llamamos a nextLine, para leer un entero usamos nextInt y finalmente para leer un flotante usamos nextFloat.

Por cierto, por buenas prácticas recomiendo cerrar el Scanner al final con el método close.

Finalmente, para imprimir un mensaje usamos el ya conocido System.out.println("mensaje");.

Métodos que tiene Scanner

Tiene muchísimos, los cuales puedes ver aquí. Voy a explicar algunos:

  • Para leer un entero se usa nextInt
  • Si queremos leer un double, entonces nextDouble
  • En caso de necesitar un flotante o float, se llama a nextFloat
  • Si necesitamos un booleano usamos el método nextBoolean

Por cierto, el método nextInt (también nextShort, nextBigInteger y nextLong) acepta un radix o base que permite especificar la base en la que está el número que vamos a leer.

Un ejemplo de la base sería en donde leemos un número binario como entero, llamando a nextInt(2) especificando la base 2; así el usuario puede introducir por ejemplo el número 1000 y Java lo regresará como 8 (pues ese número binario en base 10 es 8).

Otros métodos que no puse son nextBigDecimal, nextBigInteger, nextLong y nextShort. Si quieres profundizar más, visita el enlace que dejé aquí arriba.

Manejar excepciones y validar entrada

Cada método genera sus excepciones en caso de que algo salga mal. Por poner un ejemplo, nextInt lanza tres excepciones pero una de ellas es la de InputMismatchException que se lanza cuando se introduce un entero que no es válido, ya sea porque no es un entero según la base especificada o se sale del rango.

El siguiente ejemplo de código lee un entero por teclado pero además atrapa la excepción y valida si es un entero o no:

See the gist on github.

Cada método tiene sus excepciones, las cuales se pueden ver a detalle aquí.

Probar ejemplos de código o descargar

Eres libre de descargar el código de Java. Recomiendo ver cómo instalar Java y cómo instalar NetBeans.

También dejo los ejemplos aquí en vivo:

Lectura de datos con Scanner en Java

Leer datos introducidos por el usuario y validar

No olvides que aquí puedes ver más tutoriales de Java.

Encantado de ayudarte


Estoy disponible para trabajar en tu proyecto, modificar el programa del post o realizar tu tarea pendiente, no dudes en ponerte en contacto conmigo.

No te pierdas ninguno de mis posts

Suscríbete a mi canal de Telegram para recibir una notificación cuando escriba un nuevo tutorial de programación.
parzibyte

Programador freelancer listo para trabajar contigo. Aplicaciones web, móviles y de escritorio. PHP, Java, Go, Python, JavaScript, Kotlin y más :) https://parzibyte.me/blog/software-creado-por-parzibyte/

Ver comentarios

Entradas recientes

Monitorear cola de impresión en Windows

En este artículo te voy a enseñar a monitorear la cola de impresión de una…

24 horas hace

Solución: Unable to extract uploader id con youtube-dl

En mi blog te he enseñado a usar youtube-dl para descargar vídeos con permiso del…

5 días hace

Enviar foto a Telegram usando cURL y Bot

Siguiendo con los tutoriales que consumen la API de los Bots de Telegram con cURL…

5 días hace

cURL y Telegram: enviar mensaje a Bot

En un post previo te enseñé a enviar un mensaje en nombre de un Bot…

5 días hace

Impresora térmica con Telegram usando Bot

En este artículo te voy a mostrar una guía para imprimir en una impresora térmica…

5 días hace

Imprimir PDF con Bot de Telegram

La impresión de un PDF en cualquier impresora se puede automatizar con un bot de…

1 semana hace

Esta web usa cookies.