El scanner.nextInt es un método que lee datos de usuario en Java y hace parte de la clase Scanner. Veamos en profundidad en qué consiste este método, cómo funciona y en qué aplicaciones debe usarse.
¿Qué es scanner.nextInt?
El scanner.nextInt es un método que se utiliza para leer el siguiente token de entrada como un int o número entero. Dentro de la clase Scanner, que pertenece al paquete java.util, se encuentra este método, junto a otros que sirven a finalidades similares.
Esta clase facilita la lectura de datos de diferentes fuentes, como la entrada estándar (teclado), archivos y cadenas de texto.
El método scanner.nextInt
tiene dos variantes principales:
- public int nextInt(): Lee el siguiente token de entrada como un entero utilizando la base (radix) predeterminada, que es 10.
- public int nextInt(int radix): Lee el siguiente token de entrada como un entero utilizando la base especificada.
Veamos un ejemplo de su uso
En este ejemplo vamos a leer un número entero desde la entrada estándar del teclado:
import java.util.Scanner;
public class TestScanner {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("Introduce un número entero:");
int numero = scanner.nextInt();
System.out.println("El número introducido es: " + numero);
scanner.close();
}
}
En este caso se crea una instancia de Scanner
que lee desde la entrada estándar (System.in
). El usuario introduce un número entero, que es leído por scanner.nextInt
y luego se imprime en la consola.
El resultado sería algo como:
Introduce un número entero:
42
El número introducido es: 42
Manejo de excepciones con scanner.nextInt
Es importante tener en cuenta que scanner. nextInt
puede lanzar varias excepciones:
- InputMismatchException: Se lanza si el token de entrada no se puede convertir a un entero.
- NoSuchElementException: Se lanza si no hay más tokens disponibles.
- IllegalStateException: Se lanza si el Scanner está cerrado.
Veamos un ejemplo de cómo manejar estas excepciones al leer enteros con scanner. nextInt
.
import java.util.InputMismatchException;
import java.util.NoSuchElementException;
import java.util.Scanner;
public class TestScannerWithExceptionHandling {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("Introduce un número entero:");
try {
int numero = scanner.nextInt();
System.out.println("El número introducido es: " + numero);
} catch (InputMismatchException e) {
System.out.println("Error: El valor introducido no es un número entero.");
} catch (NoSuchElementException e) {
System.out.println("Error: No se encontraron más tokens.");
} catch (IllegalStateException e) {
System.out.println("Error: El Scanner está cerrado.");
} finally {
scanner.close();
}
}
}
En este ejemplo se han manejado las posibles excepciones que pueden ocurrir al usar scanner.nextInt
. Esto garantiza que el programa no falle abruptamente si el usuario introduce un valor no válido.
Las salidas posibles son:
Ejecución y resultados posibles
Caso normal (sin excepciones):
- Entrada del usuario:
25
- Salida:
Introduce un número entero:
25
El número introducido es: 25
Caso de InputMismatchException
:
- Entrada del usuario:
abc
- Salida:
Introduce un número entero:
abc
Error: El valor introducido no es un número entero.
Caso de NoSuchElementException
:
- Entrada del usuario: (presiona Enter sin introducir un valor)
- Salida:
Introduce un número entero:
Error: No se encontraron más tokens.
Uso avanzado de scanner.nextInt con radix
El método scanner. nextInt(int radix)
permite leer enteros en diferentes bases numéricas. La base (radix) puede ser cualquier valor entre Character.MIN_RADIX
y Character.MAX_RADIX
, que son 2 y 36, respectivamente.
Veamos un ejemplo de cómo usar scanner.nextInt
con un radix específico.
import java.util.Scanner;
public class TestScannerWithRadix {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("Introduce un número binario:");
int numeroBinario = scanner.nextInt(2);
System.out.println("El número binario introducido es: " + numeroBinario);
System.out.println("Introduce un número hexadecimal:");
int numeroHexadecimal = scanner.nextInt(16);
System.out.println("El número hexadecimal introducido es: " + numeroHexadecimal);
scanner.close();
}
}
En este ejemplo se han leído números en base 2 (binario) y base 16 (hexadecimal). El usuario puede introducir un número en la base especificada, y scanner.nextInt
lo convierte al correspondiente valor entero.
El método scanner.nextInt es un método bastante versátil en Java y nos permite leer enteros desde la entrada. Si te interesa este tema y otros relacionados con Java, no dudes en unirte al bootcamp de Java, en el que aprenderás todas las bases teóricas y prácticas para incursionar en un mercado laboral lleno de oportunidades grandiosas. ¡Anímate ahora e inscríbete en la mejor comuidad!