Преобразование 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 — реальное число, которое обозначает символ.