Introducción
En este laboratorio, aprenderemos cómo analizar un valor de cadena como un entero decimal sin signo utilizando el método parseUnsignedInt() en Java. Veremos la sintaxis, los parámetros y los tipos de retorno del método, y aprenderemos cómo usarlo con la ayuda de algunos ejemplos.
Crear un nuevo archivo Java
Primero, necesitamos crear un nuevo archivo Java en el directorio ~/proyecto. Esto se puede hacer abriendo la terminal y escribiendo:
touch ~/proyecto/UnsignedIntegerParser.java
Esto abrirá una ventana en blanco del editor Nano.
Importar la clase Integer
Necesitamos importar la clase Integer del paquete java.lang, ya que contiene el método parseUnsignedInt(). Esto se puede hacer agregando el siguiente código dentro de nuestro archivo:
import java.lang.Integer;
Analizar un entero sin signo a partir de un valor de cadena
Ahora, aprendamos cómo usar el método parseUnsignedInt(). Podemos llamar a este método en un valor de cadena y devolverá su objeto Integer decimal sin signo equivalente. Aquí hay un ejemplo:
String s = "123";
int n = Integer.parseUnsignedInt(s); //Convierte la cadena pasada como entero sin signo
System.out.println(n);
La salida de este código será 123.
Manejo de entrada no válida
Si proporcionamos una entrada no válida al método parseUnsignedInt(), lanzará una NumberFormatException. Podemos manejar esta excepción utilizando un bloque try-catch. Aquí hay un ejemplo:
try {
String s = "-123";
int n = Integer.parseUnsignedInt(s); //Convierte la cadena pasada como entero sin signo
System.out.println(n);
} catch(NumberFormatException ex) {
System.out.println("Entrada no válida.");
}
En este código, estamos intentando analizar un entero negativo, lo cual es no válido. El método parseUnsignedInt() lanzará una NumberFormatException, que es capturada por el bloque catch. La salida de este código será Entrada no válida..
Lectura de la entrada desde la consola
También podemos leer la entrada desde la consola y analizarla como un entero sin signo. Aquí hay un ejemplo:
Scanner scanner = new Scanner(System.in);
System.out.print("Ingrese un entero positivo: ");
String s = scanner.nextLine();
try {
int n = Integer.parseUnsignedInt(s); //Convierte la cadena pasada como entero sin signo
System.out.println(n);
} catch(NumberFormatException ex) {
System.out.println("Entrada no válida.");
}
En este código, estamos utilizando la clase Scanner para leer la entrada desde la consola. Luego, estamos analizando la cadena de entrada como un entero sin signo utilizando el método parseUnsignedInt(). Finalmente, estamos capturando cualquier excepción que pueda ocurrir mientras se analiza la entrada.
Para ejecutar este código en la terminal, primero debemos compilarlo utilizando el comando:
javac UnsignedIntegerParser.java
Luego, podemos ejecutarlo utilizando el comando:
java UnsignedIntegerParser
Analizando enteros sin signo a partir de una lista de cadenas
También podemos analizar enteros sin signo a partir de una lista de cadenas. Aquí hay un ejemplo:
List<String> stringList = Arrays.asList("123", "456", "789");
for (String s : stringList) {
try {
int n = Integer.parseUnsignedInt(s); //Convierte la cadena pasada como entero sin signo
System.out.println(n);
} catch(NumberFormatException ex) {
System.out.println("Entrada no válida: " + s);
}
}
En este código, estamos iterando sobre una lista de cadenas y analizando cada cadena como un entero sin signo utilizando el método parseUnsignedInt(). Si la cadena no es un entero sin signo válido, capturamos la excepción y mostramos un mensaje de error.
Usando una función auxiliar
Para evitar repetir el mismo bloque try-catch cada vez que analizamos un entero sin signo, podemos crear una función auxiliar que tome una cadena como entrada y devuelva un entero sin signo. Aquí hay un ejemplo:
public static int parseUnsignedInt(String s) {
try {
return Integer.parseUnsignedInt(s); //Convierte la cadena pasada como entero sin signo
} catch(NumberFormatException ex) {
return -1; //Devuelve -1 para entrada no válida
}
}
En este código, estamos definiendo una función parseUnsignedInt() que toma una cadena como entrada y devuelve un entero sin signo. Si la entrada no es un entero sin signo válido, la función devuelve -1. Luego podemos usar esta función para analizar enteros sin signo sin preocuparnos por las excepciones. Aquí hay un ejemplo de cómo usar la función:
String s = "123";
int n = parseUnsignedInt(s);
System.out.println(n); //Salida: 123
s = "-123";
n = parseUnsignedInt(s);
System.out.println(n); //Salida: -1
Manejo de enteros sin signo más grandes
Si necesitamos analizar enteros sin signo más grandes, podemos utilizar el método parseUnsignedInt() de la clase UnsignedInteger en lugar de la clase Integer. Este método devuelve un long en lugar de un int. Aquí hay un ejemplo:
String s = "4294967295"; //Valor máximo de un entero sin signo de 32 bits
long n = Long.parseUnsignedLong(s);
System.out.println(n); //Salida: 4294967295
Usando la base numérica
Si queremos analizar una cadena que representa un número en una base numérica diferente a 10, podemos usar el método parseInt() que toma un parámetro extra radix. Aquí hay un ejemplo:
String s = "1101"; //Representación binaria de 13
int n = Integer.parseUnsignedInt(s, 2); //Analizar como binario
System.out.println(n); //Salida: 13
Saliendo de Nano y ejecutando el código
Para salir de Nano, presiona Ctrl+X, luego presiona Y para guardar el archivo y luego presiona Enter.
Para ejecutar el código en la terminal, podemos compilarlo usando el comando:
javac UnsignedIntegerParser.java
Luego, podemos ejecutarlo usando el comando:
java UnsignedIntegerParser
Resumen
En este laboratorio, aprendimos cómo analizar un valor de cadena como un entero decimal sin signo utilizando el método parseUnsignedInt() en Java. También aprendimos cómo manejar entradas no válidas, leer entradas desde la consola, analizar enteros sin signo de una lista de cadenas y utilizar funciones auxiliares. También aprendimos cómo analizar enteros sin signo más grandes, utilizar la base numérica (radix) y ejecutar nuestro código en la terminal.



