Java Integer CompareUnsigned 方法

JavaJavaBeginner
立即练习

💡 本教程由 AI 辅助翻译自英文原版。如需查看原文,您可以 切换至英文原版

介绍

Integer 类的 compareUnsigned() 方法用于比较两个整数的无符号值,以确定哪一个更大。如果两个整数的无符号值相等,则该方法返回 0。如果第一个整数的无符号值大于第二个,则返回 1。如果第一个整数的无符号值小于第二个,则返回 -1。

创建一个 Java 类文件

在终端中,为你的 Java 项目创建一个新目录。例如:

mkdir project

进入项目目录:

cd project

创建一个名为 IntegerCompareUnsigned.java 的 Java 类文件:

touch IntegerCompareUnsigned.java

实现代码

将以下代码复制并粘贴到 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("Enter first and second number: ");

	// Taking input from user
        try {
            int n1 = sc.nextInt();
            int n2 = sc.nextInt();

	    // Calling compareUnsigned() method
            int r = Integer.compareUnsigned(n1, n2);

	    // Examining the result
            if(r > 0) {
                System.out.println("First number is greater");
            }
            else if(r < 0) {
                System.out.println("Second number is greater");
            }
            else {
                System.out.println("Both numbers are equal");
            }
        }
        catch(Exception e) {
            System.out.println("Invalid input!");
        }
    }
}

保存并退出文件。

该程序从用户处获取两个整数,并使用 compareUnsigned() 方法比较它们的无符号值。然后显示第一个数是否大于第二个数,第二个数是否大于第一个数,或者两个数是否相等。

编译并运行程序

使用以下命令编译程序:

javac IntegerCompareUnsigned.java

使用以下命令运行程序:

java IntegerCompareUnsigned

你应该会看到以下提示:

Enter first and second number:

输入两个数字——一个大于 2147483647,另一个小于或等于 2147483647。这是因为 Java 的 int 数据类型只能保存 32 位有符号值,范围从 -2147483648 到 2147483647。如果你输入一个大于 2147483647 的数字,将会显示错误信息。

程序运行后,你应该会看到以下输出:

First number is greater

使用不同值测试程序

你可以使用不同的值测试程序并查看输出。

尝试使用以下输入运行程序:

Enter first and second number: -10 20
Enter first and second number: 500000000 -200000000
Enter first and second number: 0 0

修改程序

修改程序,使其通过命令行参数接收两个整数,而不是在运行时从用户处读取。

将以下代码复制并粘贴到 IntegerCompareUnsigned.java 文件中:

import java.lang.Integer;

public class IntegerCompareUnsigned {

    public static void main(String[] args) {

	// Checking if the correct number of arguments are provided
        if(args.length != 2) {
            System.out.println("Please provide two integer arguments!");
            return;
        }

	// Parsing the arguments as integers
        int n1 = Integer.parseInt(args[0]);
        int n2 = Integer.parseInt(args[1]);

	// Calling compareUnsigned() method
        int r = Integer.compareUnsigned(n1, n2);

	// Examining the result
        if(r > 0) {
            System.out.println(n1 + " is greater than " + n2);
        }
        else if(r < 0) {
            System.out.println(n2 + " is greater than " + n1);
        }
        else {
            System.out.println(n1 + " and " + n2 + " are equal");
        }
    }
}

保存并退出文件。

编译并运行修改后的程序

使用以下命令编译修改后的程序:

javac IntegerCompareUnsigned.java

使用以下命令运行修改后的程序:

java IntegerCompareUnsigned 3000000000 200000000

你应该会看到以下输出:

3000000000 is greater than 200000000

修改程序以使用不同的输入进行测试。

总结

在本实验中,你学习了如何使用 Integer 类的 compareUnsigned() 方法来比较两个整数的无符号值,以确定哪一个更大。你还学习了如何修改程序,使其通过命令行参数接收两个整数,而不是在运行时从用户处读取。

您可能感兴趣的其他 Java 教程