介绍
Integer
类的 compareUnsigned()
方法用于比较两个整数的无符号值,以确定哪一个更大。如果两个整数的无符号值相等,则该方法返回 0。如果第一个整数的无符号值大于第二个,则返回 1。如果第一个整数的无符号值小于第二个,则返回 -1。
Integer
类的 compareUnsigned()
方法用于比较两个整数的无符号值,以确定哪一个更大。如果两个整数的无符号值相等,则该方法返回 0。如果第一个整数的无符号值大于第二个,则返回 1。如果第一个整数的无符号值小于第二个,则返回 -1。
在终端中,为你的 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()
方法来比较两个整数的无符号值,以确定哪一个更大。你还学习了如何修改程序,使其通过命令行参数接收两个整数,而不是在运行时从用户处读取。