Преобразование 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. Для больших чисел он даст не ту букву, которую вы ожидаете.