Solicitando datos en java
Como en todo lenguaje de programación java hace uso de la clase llamado scanner que pertenece al paquete java.util, permite captar todas las pulsaciones del teclado. Se muestra en esta ocasión las características que deben de tener en cuenta a la hora de solicitar datos en java a un usuario.
Características
- Instancia de
Scanner
: primero se debe crear una instancia de la clase. Para leer desde la consola se usaría el siguiente código:Scanner scanner = new Scanner(System.in);
- Métodos para leer: Scanner proporciona los siguientes métodos que permite leer diferentes tipos de datos. Estos métodos bloquean la ejecución del programa hasta que el usuario ingresa el dato correspondiente y presiona Enter. También convierten automáticamente el valor ingresado al tipo de dato adecuado. Estos son:
nextInt()
: Lee un entero de la entrada.nextDouble()
: Lee un número de punto flotante de la entrada.nextBoolean()
: Lee un valor booleano de la entrada.nextLine()
: Lee una línea completa de texto de la entrada.next()
: Lee la siguiente palabra de la entrada.
- Manejo de excepciones: Los métodos de lectura de
Scanner
pueden generar excepciones si el formato de entrada no coincide con el tipo de dato esperado. Por ejemplo, si intentas leer un entero y el usuario ingresa una cadena no numérica, se lanzará una excepciónInputMismatchException
. Por lo tanto, es importante manejar estas excepciones utilizando bloquestry-catch
o propagándolas hacia arriba en la jerarquía de llamadas. - Cierre del objeto
Scanner
: Después de finalizar la lectura de datos, es recomendable cerrar el objetoScanner
utilizando el métodoclose()
. Esto libera los recursos asociados y evita posibles fugas de memoria. El siguiente código muestra cómo cerrar un objetoScanner
:scanner.close();
Es importante tener en cuenta que Scanner
es sensible al delimitador de entrada predeterminado, que es el espacio en blanco. Esto significa que los métodos de lectura generalmente leerán hasta el próximo espacio en blanco o salto de línea. Sin embargo, puedes personalizar el delimitador utilizando el método useDelimiter()
.
La clase Scanner
en Java es una herramienta útil para leer datos de entrada desde diferentes fuentes. Proporciona métodos para leer diferentes tipos de datos y permite una interacción flexible con el usuario.
Ejemplo
import java.util.Scanner; public class DatoTeclado { public static void main(String[] args) { // Crear un objeto Scanner para leer la entrada del usuario Scanner scanner = new Scanner(System.in); // Solicitar al usuario que ingrese su nombre System.out.print("Ingrese su nombre: "); String nombre = scanner.nextLine(); // Solicitar al usuario que ingrese su edad System.out.print("Ingrese su edad: "); int edad = scanner.nextInt(); // Solicitar al usuario que ingrese un número decimal System.out.print("Ingrese un número decimal: "); double numeroDecimal = scanner.nextDouble(); // Imprimir los datos ingresados por el usuario System.out.println("Nombre: " + nombre); System.out.println("Edad: " + edad); System.out.println("Número decimal: " + numeroDecimal); // Cerrar el objeto Scanner scanner.close(); } }
En el ejemplo anterior, se crea un objeto Scanner
llamado scanner
para leer la entrada del usuario desde la consola (System.in
).
Luego, se utiliza el método nextLine()
para solicitar al usuario que ingrese su nombre. Este método lee una línea completa de texto ingresada por el usuario, incluyendo espacios en blanco.
Se utiliza nextInt()
para solicitar al usuario que ingrese su edad. El método nextInt()
lee un entero de la entrada del usuario.
El método nextDouble()
se usa para solicitar al usuario que ingrese un número decimal. Permitiendo leer un número decimal desde el teclado
Los datos ingresados por el usuario se almacenan en las variables nombre
, edad
y numeroDecimal
. Luego, se imprimen los datos en la pantalla
Es importante cerrar el objeto Scanner
utilizando el método close()
una vez que hayas terminado de utilizarlo para liberar los recursos asociados.
Al ejecutar el programa, se solicitará al usuario que ingrese los datos en el orden especificado y se imprimirán en la consola.
No se debe de olvidar que para que funcione hay que hacer la importación de la clase y eso se realiza con la primera linea del código: import java.util.Scanner;