Метод compareUnsigned() класса Integer в Java

JavaJavaBeginner
Практиковаться сейчас

💡 Этот учебник переведен с английского с помощью ИИ. Чтобы просмотреть оригинал, вы можете перейти на английский оригинал

Введение

Метод compareUnsigned() класса Integer используется для сравнения беззнаковых значений двух целых чисел, чтобы определить, какое из них больше другого. Метод возвращает 0, если беззнаковые значения обоих целых чисел равны. Возвращает 1, если беззнаковое значение первого целого числа больше второго. Возвращает -1, если беззнаковое значение первого целого числа меньше второго.

Создайте файл Java-класса

В терминале создайте новую директорию для вашего Java-проекта. Например:

mkdir project

Перейдите в директорию проекта:

cd project

Создайте новый Java-класс с именем IntegerCompareUnsigned.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

Измените программу, чтобы протестировать ее с разными входными данными.

Резюме

В этом практическом занятии вы узнали, как использовать метод compareUnsigned() класса Integer для сравнения беззнаковых значений двух целых чисел, чтобы определить, какое из них больше другого. Также вы узнали, как изменить программу, чтобы она принимала два целых числа в качестве аргументов командной строки, а не читала их от пользователя во время выполнения.