Метод forDigit класса Character в Java

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

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

Введение

В этом практическом занятии вы узнаете о методе Java forDigit(), который является частью класса Character. Этот метод возвращает указанное представление символа для указанной цифры в соответствии с указанной основанием системы счисления.

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

Создайте Java-файл с именем CharForDigit.java в каталоге ~/project с использованием следующей команды:

touch ~/project/CharForDigit.java

Добавьте начальный код

Добавьте следующий код в файл CharForDigit.java:

public class CharForDigit {
    public static void main(String[] args) {
        int n1 = 8;
        int n2 = 23;
        int n3 = 30;
        char ch1 = Character.forDigit(n1, 9);
        char ch2 = Character.forDigit(n2, 25);
        char ch3 = Character.forDigit(n3, 36);
        System.out.println("The char representation of " + n1 + " in radix 9 is " + ch1);
        System.out.println("The char representation of " + n2 + " in radix 25 is " + ch2);
        System.out.println("The char representation of " + n3 + " in radix 36 is " + ch3);
    }
}

Данный код создает класс CharForDigit с методом main. Метод main демонстрирует, как использовать метод forDigit() для получения представления символа для цифры в различных системах счисления.

Скомпилируйте и запустите код

Скомпилируйте файл CharForDigit.java с использованием следующей команды:

javac CharForDigit.java

Затем запустите код с использованием следующей команды:

java CharForDigit

Вы должны увидеть следующий вывод:

The char representation of 8 in radix 9 is 8
The char representation of 23 in radix 25 is n
The char representation of 30 in radix 36 is u

Данный вывод подтверждает, что метод forDigit() работает как ожидается.

Добавьте ввод пользователя

Теперь модифицируем код, чтобы принимать ввод пользователя для цифры и основания системы счисления. Добавьте следующий код после начального кода:

Scanner sc = new Scanner(System.in);
System.out.print("Enter digit: ");
int d = sc.nextInt();
System.out.print("Enter radix: ");
int r = sc.nextInt();
char result = Character.forDigit(d, r);
System.out.println("The character at radix \'" + r + "\' for the digit " + d + " is: " + result);

Данный код предлагает пользователю ввести цифру и основание системы счисления, считывает ввод с консоли и использует метод forDigit() для получения представления символа для цифры.

Скомпилируйте и запустите код с вводом пользователя

Скомпилируйте модифицированный файл CharForDigit.java с использованием следующей команды:

javac CharForDigit.java

Затем запустите код с использованием следующей команды:

java CharForDigit

В консоли вы должны увидеть следующий запрос:

Enter digit:

Введите цифру (например, 12) и нажмите Enter. Затем вы должны увидеть следующий запрос:

Enter radix:

Введите основание системы счисления (например, 16) и нажмите Enter. Затем вы должны увидеть следующий вывод:

The character at radix '16' for the digit 12 is: c

Данный вывод подтверждает, что модифицированный код работает как ожидается.

Тестирование на некорректный ввод

Измените код, чтобы обрабатывать некорректный ввод пользователя. Добавьте следующий код после кода ввода пользователя:

} catch (InputMismatchException e) {
    System.out.println("Invalid input!");
}

Данный код ловит любое исключение InputMismatchException, которое выбрасывается классом Scanner, когда пользователь вводит данные, которые не могут быть проанализированы как целое число.

Скомпилируйте и запустите модифицированный код

Скомпилируйте модифицированный файл CharForDigit.java с использованием следующей команды:

javac CharForDigit.java

Затем запустите код с использованием следующей команды:

java CharForDigit

В консоли вы должны увидеть следующий запрос:

Enter digit:

Введите нечисловой ввод (например, "abc") и нажмите Enter. Вы должны увидеть следующий вывод:

Invalid input!

Данный вывод подтверждает, что код обрабатывает некорректный ввод как ожидается.

Тестирование на некорректное основание системы счисления

Измените код, чтобы проверить, является ли введенное основание системы счисления допустимым. Добавьте следующий код после кода ввода пользователя:

if (r < Character.MIN_RADIX || r > Character.MAX_RADIX) {
    System.out.println("Invalid radix!");
    return;
}

Данный код проверяет, меньше ли введенное основание системы счисления минимального основания или больше максимального основания. Если это так, то выводится сообщение и программа завершается.

Скомпилируйте и запустите модифицированный код

Скомпилируйте модифицированный файл CharForDigit.java с использованием следующей команды:

javac CharForDigit.java

Затем запустите код с использованием следующей команды:

java CharForDigit

В консоли вы должны увидеть следующий запрос:

Enter digit:

Введите цифру (например, 6) и нажмите Enter. Затем вы должны увидеть следующий запрос:

Enter radix:

Введите основание системы счисления, меньшее 2 или большее 36 (например, 1 или 100), и нажмите Enter. Вы должны увидеть следующий вывод:

Invalid radix!

Данный вывод подтверждает, что код обрабатывает некорректное основание системы счисления как ожидается.

Резюме

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