Café y Código

3. Interacción con el Usuario (I/O)

La poderosa clase Scanner

Para leer datos que un usuario ingresa en la consola, Java nos provee la clase Scanner, ubicada en el paquete java.util. Dado que no viene incluida por defecto en el archivo básico, debemos importarla explícitamente en la parte superior del archivo.

Para iniciarla, hay que crear una instancia (objeto) vinculándola a la entrada del sistema opertivo (System.in).

Uso clásico de Scanner
JAVA
1 // 1. Importación obligatoria antes de tu class
2 import java.util.Scanner;
3
4 public class Main {
5 public static void main(String[] args) {
6 // 2. Crear una instancia de Scanner
7 Scanner lector = new Scanner(System.in);
8
9 System.out.print("Escribe tu nombre: ");
10 // 3. Leer una cadena de texto hasta que pulse Enter
11 String nombreUsuario = lector.nextLine();
12
13 System.out.println("¡Un gusto conocerte, " + nombreUsuario + "!");
14
15 // 4. Buena práctica: Cerrar el Scanner al terminar de usar recursos locales
16 lector.close();
17 }
18 }

Lectura Estricta de Números

Si un usuario necesita ingresar su edad para hacer un guardado matemático (no un string), usamos métodos específicos de la clase Scanner como nextInt() o nextDouble().

Lectura Numérica
JAVA
1 System.out.print("Ingresa tu edad: ");
2 int edad = lector.nextInt();
3
4 int restan = 100 - edad;
5 System.out.println("Te faltan " + restan + " años para ser centenario.");

👨‍💻 Ejercicio Práctico 1

Misión: Saludo Personalizado

Importa Scanner, pide al usuario que ingrese su pasatiempo favorito y léelo usando .nextLine() para imprimir un comentario sobre su respuesta.

👁️ Ver solución propuesta
JAVA
1 import java.util.Scanner;
2
3 public class Main {
4 public static void main(String[] args) {
5 Scanner sc = new Scanner(System.in);
6 System.out.print("¿Cuál es tu pasatiempo favorito?: ");
7 String hobby = sc.nextLine();
8
9 System.out.println("¡A mí también me encanta " + hobby + "!");
10 sc.close();
11 }
12 }

👨‍💻 Ejercicio Práctico 2

Misión: Calculadora Automática

Usa nextInt() para solicitar dos números al usuario e imprime en consola la suma exacta de ambos.

👁️ Ver solución propuesta
JAVA
1 import java.util.Scanner;
2
3 public class Main {
4 public static void main(String[] args) {
5 Scanner sc = new Scanner(System.in);
6
7 System.out.print("Ingresa un número: ");
8 int num1 = sc.nextInt();
9
10 System.out.print("Ingresa otro número: ");
11 int num2 = sc.nextInt();
12
13 System.out.println("El total es: " + (num1 + num2));
14 sc.close();
15 }
16 }

👨‍💻 Ejercicio Práctico 3

Misión: Nacimiento estimado

Pregúntale al usuario su edad actual usando nextInt(). Réstala al año estático 2026 para calcular su año de nacimiento aproximado e imprimirlo.

👁️ Ver solución propuesta
JAVA
1 Scanner lector = new Scanner(System.in);
2 System.out.print("Ingresa tu edad entera: ");
3 int edad = lector.nextInt();
4 int anio = 2026 - edad;
5 System.out.println("Naciste aproximadamente en " + anio);

👨‍💻 Ejercicio Práctico 4

Misión: Cuidado con el Decimal

Solicita el precio de un refresco. Usa nextDouble() para permitir que el cliente ingrese números fraccionados (como 12.5) e imprime el valor con sufijo de dólar o moneda local.

👁️ Ver solución propuesta
JAVA
1 Scanner lector = new Scanner(System.in);
2 System.out.print("Introduce el precio: ");
3 double precio = lector.nextDouble();
4 System.out.println("El costo final registrado es: $" + precio);

Ponte a prueba

Resuelve este cuestionario para demostrar que dominas el arte de java.util.Scanner.

Dato curioso: JDK 1.0 en 1996; James Gosling y Sun Microsystems. Wikipedia

Ko-fi
Donaciones
Apoyá cafeycodigo con un café en Ko-fi. Colaboradores: insignia, muro y zona exclusiva.