+0

Cómo usar el Scanner en Java 21, y el System.out.println

Duration: 3m 34s



Vamos a ver cómo tener entrada y salida de datos en Java con la clase Scanner.

Hasta ahora hemos trabajado con números ya incluidos en nuestro código. Para esto, tomamos un bolígrafo y papel, y realizamos los cálculos ahí. La gracia de programar es encargarse de procesar los datos, no de introducirlos. Por eso, vamos a ver cómo aceptar datos que introduzca un usuario en nuestro programa y cómo mostrarlos.

Entrada con Scanner y System.in

El Scanner en Java es una clase que nos facilita la introducción de datos a nuestro programa. Para obtenerlo, necesitamos instanciarlo en nuestro código.

Más adelante veremos todo el tema de instanciar objetos. ¡Sigue así!

Scanner scanner = new Scanner(System.in);

Vamos a desglosar un poco esta línea de código:

  • Scanner scanner =: Declaramos la variable scanner de tipo Scanner.
  • new Scanner(System.in);: Asignación del objeto
  • System.in: Todo lo que entre por la terminal.

Leer entrada

Para leer la entrada, hemos de decidir qué queremos leer primero. Supongamos que queremos leer dos números enteros (dos ints). El Scanner trae métodos para leer casi todo tipo de variables. Simplemente hay que usar scanner.nextInt() o scanner.nextDouble(). ¡Pruébalo tú mismo!

Si quisiéramos leer texto, usaríamos scanner.nextLine().

Vamos con el ejemplo:

Scanner scanner = new Scanner(System.in);
 
int a = scanner.nextInt();
int b = scanner.nextInt();

¡Muy bien! Ya tenemos guardados dos números ingresados por un usuario desde fuera. Esto es todo un avance. Ahora bien, ¿qué pasa si un usuario ingresa otra cosa que no sea un número? El programa fallará. Vamos a protegerlo un poco.

Comprobar entrada

Para comprobar la entrada y verificar que obtendremos el tipo de variable que pedimos, podemos usar el Scanner otra vez, con todos los métodos que trae para cada tipo de variable. Simplemente hay que usar scanner.hasNextInt() o scanner.hasNextDouble(). Este método devuelve un booleano siendo cierto si realmente puede leer el tipo de variable que le hemos dicho de la entrada.

Si modificáramos el ejemplo para asegurarnos de que la entrada es un número entero, quedaría así:

Scanner scanner = new Scanner(System.in);
 
if (!scanner.hasNextInt()) {
    // Entrará aquí si no hay un número entero en la entrada. Tendríamos que parar el programa o avisar al usuario.
}
int a = scanner.nextInt();
 
if (!scanner.hasNextInt()) {
    // Entrará aquí si no hay un número entero en la entrada. Tendríamos que parar el programa o avisar al usuario.
}
int b = scanner.nextInt();
 

Salida con System.out

Para poder enviar un mensaje al usuario, usaremos el método siguiente: System.out.println(mensaje)

Es un poco largo, pero con el tiempo te saldrá solo 😅.

Vamos a ver un ejemplo leyendo dos números de entrada y luego sacando la suma de ellos.

Scanner scanner = new Scanner(System.in);
 
System.out.println("Introduce dos números para sumarlos: ");
 
int a = scanner.nextInt();
int b = scanner.nextInt();
 
System.out.println(a + b);

¡Esto cada vez va cogiendo más forma! Con esto has aprendido a programar, ¡olé! 👏 Vamos a por un ejercicio para acabar de aprender todo, y ahora empezaremos con la magia de Java.