Método compareUnsigned de Integer en Java

JavaJavaBeginner
Practicar Ahora

💡 Este tutorial está traducido por IA desde la versión en inglés. Para ver la versión original, puedes hacer clic aquí

Introducción

El método compareUnsigned() de la clase Integer se utiliza para comparar el valor sin signo de dos enteros para determinar cuál es mayor que el otro. El método devuelve 0 si los valores sin signo de ambos enteros son iguales. Devuelve 1 si el valor sin signo del primer entero es mayor que el segundo. Devuelve -1 si el valor sin signo del primer entero es menor que el segundo.

Crea un archivo de clase Java

En la terminal, crea un nuevo directorio para tu proyecto Java. Por ejemplo:

mkdir proyecto

Entra en el directorio del proyecto:

cd proyecto

Crea un nuevo archivo de clase Java llamado IntegerCompareUnsigned.java:

touch IntegerCompareUnsigned.java

Implementa el código

Copia y pega el siguiente código en el archivo IntegerCompareUnsigned.java:

import java.lang.Integer;
import java.util.Scanner;

public class IntegerCompareUnsigned {

    public static void main(String[] args) {

        Scanner sc = new Scanner(System.in);
        System.out.print("Ingrese el primer y el segundo número: ");

	// Tomando la entrada del usuario
        try {
            int n1 = sc.nextInt();
            int n2 = sc.nextInt();

	    // Llamando al método compareUnsigned()
            int r = Integer.compareUnsigned(n1, n2);

	    // Examinando el resultado
            if(r > 0) {
                System.out.println("El primer número es mayor");
            }
            else if(r < 0) {
                System.out.println("El segundo número es mayor");
            }
            else {
                System.out.println("Ambos números son iguales");
            }
        }
        catch(Exception e) {
            System.out.println("Entrada no válida!");
        }
    }
}

Guarda y cierra el archivo.

Este programa toma dos enteros del usuario y utiliza el método compareUnsigned() para comparar sus valores sin signo. Luego muestra si el primer número es mayor que el segundo, el segundo número es mayor que el primero o los números son iguales.

Compila y ejecuta el programa

Compila el programa usando el siguiente comando:

javac IntegerCompareUnsigned.java

Ejecuta el programa usando el siguiente comando:

java IntegerCompareUnsigned

Deberías ver el siguiente mensaje de solicitud:

Ingrese el primer y el segundo número:

Ingresa dos números: uno mayor que 2147483647 y el otro menor o igual a 2147483647. Esto se debe a que el tipo de datos int de Java solo puede almacenar valores de 32 bits con signo, desde -2147483648 hasta 2147483647. Si ingresas un número mayor que 2147483647, se mostrará un mensaje de error.

El programa se ejecutará y deberías ver la siguiente salida:

El primer número es mayor

Prueba el programa con diferentes valores

Puedes probar el programa con diferentes valores y ver la salida.

Intenta ejecutar el programa con las siguientes entradas:

Ingrese el primer y el segundo número: -10 20
Ingrese el primer y el segundo número: 500000000 -200000000
Ingrese el primer y el segundo número: 0 0

Modifica el programa

Modifica el programa para que tome dos enteros como argumentos de línea de comandos en lugar de leerlos del usuario en tiempo de ejecución.

Copia y pega el siguiente código en el archivo IntegerCompareUnsigned.java:

import java.lang.Integer;

public class IntegerCompareUnsigned {

    public static void main(String[] args) {

	// Comprobando si se proporcionan la cantidad correcta de argumentos
        if(args.length!= 2) {
            System.out.println("Por favor, proporcione dos argumentos enteros!");
            return;
        }

	// Analizando los argumentos como enteros
        int n1 = Integer.parseInt(args[0]);
        int n2 = Integer.parseInt(args[1]);

	// Llamando al método compareUnsigned()
        int r = Integer.compareUnsigned(n1, n2);

	// Examinando el resultado
        if(r > 0) {
            System.out.println(n1 + " es mayor que " + n2);
        }
        else if(r < 0) {
            System.out.println(n2 + " es mayor que " + n1);
        }
        else {
            System.out.println(n1 + " y " + n2 + " son iguales");
        }
    }
}

Guarda y cierra el archivo.

Compila y ejecuta el programa modificado

Compila el programa modificado usando el siguiente comando:

javac IntegerCompareUnsigned.java

Ejecuta el programa modificado usando el siguiente comando:

java IntegerCompareUnsigned 3000000000 200000000

Deberías ver la siguiente salida:

3000000000 es mayor que 200000000

Modifica el programa para probarlo con diferentes entradas.

Resumen

En este laboratorio, aprendiste cómo usar el método compareUnsigned() de la clase Integer para comparar el valor sin signo de dos enteros y determinar cuál es mayor que el otro. También aprendiste cómo modificar el programa para que tome dos enteros como argumentos de línea de comandos en lugar de leerlos del usuario en tiempo de ejecución.