Преобразование int в char на Java — все способы с примерами
Обратная задача: есть число типа int, нужно получить из него символ. Рассмотрим три способа.
Пример 1: int в char через явное приведение типа
Простое приведение типа (char) превращает целое число в символ с соответствующим ASCII-кодом.
class Main {
public static void main(String[] args) {
// create int variables
int num1 = 80;
int num2 = 81;
// convert int to char
// typecasting
char a = (char)num1;
char b = (char)num2;
// print value
System.out.println(a); // P
System.out.println(b); // Q
}
}
Вывод:
P
Q
Здесь происходит приведение типа — мы явно говорим компилятору превратить int в char. Числа 80 и 81 трактуются как ASCII-коды и дают символы P и Q.
Пример 2: int в char через метод forDigit()
Если нужно получить именно символ-цифру (или букву для шестнадцатеричной системы), используется метод Character.forDigit().
class Main {
public static void main(String[] args) {
// create int variables
int num1 = 1;
int num2 = 13;
// convert int to char
// for value between 0-9
char a = Character.forDigit(num1, 10);
// for value between 0-9
char b = Character.forDigit(num2, 16);
// print value
System.out.println(a); // 1
System.out.println(b); // d
}
}
Вывод:
1
d
Второй параметр метода — основание системы счисления (radix). Для десятичной системы (цифры 0–9) используем 10, для шестнадцатеричной (0–15) — 16. Поэтому 13 в шестнадцатеричной даёт символ d.
Пример 3: int в char через прибавление „0“
Для одиночной цифры (0–9) можно прибавить к ней символ '0' и привести результат к char.
class Main {
public static void main(String[] args) {
// create int variables
int num1 = 1;
int num2 = 9;
// convert int to char
char a = (char)(num1 + '0');
char b = (char)(num2 + '0');
// print value
System.out.println(a); // 1
System.out.println(b); // 9
}
}
Вывод:
1
9
Символ '0' имеет ASCII-код 48. Прибавляя к нему число 1, получаем 49 — ASCII-код символа '1'. Приведение (char) превращает это число обратно в символ.
Предупреждение
Этот способ работает только для цифр от 0 до 9. Для больших чисел он даст не ту букву, которую вы ожидаете.