Преобразование char в int на Java — все способы с примерами

В Java тип char хранит один символ — букву, цифру или знак. Иногда нужно получить его числовое представление: для одних задач — это ASCII-код символа, для других — реальная цифра, которую этот символ обозначает. Разберём четыре способа преобразовать char в int.

Пример 1: преобразование char в int напрямую

Если просто присвоить переменной int значение типа char, Java автоматически подставит ASCII-код символа.

class Main {
  public static void main(String[] args) {

    // create char variables
    char a = '5';
    char b = 'c';

    // convert char variables to int
    // ASCII value of characters is assigned
    int num1 = a;
    int num2 = b;

    // print the values
    System.out.println(num1);    // 53
    System.out.println(num2);    // 99
  }
}

Вывод:

53
99

В переменных a и b хранятся символы '5' и 'c'. При присваивании их переменным типа int подставляются именно ASCII-коды: 53 для '5' и 99 для 'c'.

Пример 2: char в int через метод getNumericValue()

Если нужно получить именно цифру, а не её ASCII-код, используем метод getNumericValue() класса Character.

class Main {
  public static void main(String[] args) {

    // create char variables
    char a = '5';
    char b = '9';

    // convert char variables to int
    // Use getNumericValue()
    int num1 = Character.getNumericValue(a);
    int num2 = Character.getNumericValue(b);

    // print the numeric value of characters
    System.out.println(num1);    // 5
    System.out.println(num2);    // 9
  }
}

Вывод:

5
9

Метод getNumericValue() возвращает числовое значение символа. Символ '5' превращается в число 5, а '9' — в 9.

Пример 3: char в int через метод parseInt()

Ещё один способ — сначала превратить символ в строку через String.valueOf(), а затем разобрать её методом Integer.parseInt().

class Main {
  public static void main(String[] args) {

    // create char variables
    char a = '5';
    char b = '9';

    // convert char variables to int
    // Use parseInt()
    int num1 = Integer.parseInt(String.valueOf(a));
    int num2 = Integer.parseInt(String.valueOf(b));

    // print numeric value
    System.out.println(num1);    // 5
    System.out.println(num2);    // 9
  }
}

Вывод:

5
9

В выражении Integer.parseInt(String.valueOf(a)) сначала String.valueOf(a) превращает символ в строку, а потом Integer.parseInt() разбирает строку в число.

Примечание

Метод Integer.parseInt() работает только со строками. Именно поэтому char сначала приходится оборачивать в String.

Пример 4: char в int вычитанием символа „0“

Если символ — это цифра, его можно превратить в число, вычтя из него символ '0'.

class Main {
  public static void main(String[] args) {

    // create char variables
    char a = '9';
    char b = '3';

    // convert char variables to int
    // by subtracting with char 0
    int num1 = a - '0';
    int num2 = b - '0';

    // print numeric value
    System.out.println(num1);    // 9
    System.out.println(num2);    // 3
  }
}

Вывод:

9
3

В выражении int num1 = a - '0'; оба символа автоматически превращаются в свои ASCII-коды. Например, '9' — это 57, а '0' — это 48. Их разность даёт 9 — реальное число, которое обозначает символ.