У меня есть символ:
char ch='A'
Дайте мне метод, который преобразует char to ASCII
или способ, который возвращает a ASCII NUMBER
.
Выход: 65
У меня есть символ:
char ch='A'
Дайте мне метод, который преобразует char to ASCII
или способ, который возвращает a ASCII NUMBER
.
Выход: 65
char ch='A';
System.out.println((int)ch);
Существует основная информация, связанная с получением кода ASCII значения char
.
В правильном смысле это невозможно.
Это потому, что char
имеет диапазон 65535
, тогда как ASCII ограничивается 128
. Существует огромное количество символов, которые вообще не имеют представления ASCII.
Правильный способ заключается в использовании Unicode code point, который является стандартным числовым эквивалентом символа в юниверсе Java.
К счастью, Unicode - это полный набор ASCII. Это означает, что номера Юникода для латинских символов равны их аналогам ASCII. Например, A
в Юникоде U+0041
или 65
в десятичном формате. Напротив, ASCII не имеет сопоставления для 99% char -s. Короче говоря:
char ch = 'A';
int cp = String.valueOf(ch).codePointAt(0);
Кроме того, 16-разрядный примитив char
фактически представляет собой единицу кода, а не символ и, таким образом, ограничен базовой многоязычной плоскостью для исторические причины. Для объектов, находящихся за ним, требуется Character объекты, которые устраняют ограничение фиксированной длины бит.
A char
на самом деле является числовым типом данных - вы можете добавить его к int
, например. Это unsigned short
(16 бит). В этом отношении вы можете просто передать результат, например, int
, чтобы получить числовое значение.
Однако вам нужно подумать немного больше о том, что вы спрашиваете - не все символы являются значениями ASCII. Какой результат вы ожидаете для â
, например, или 你
?
Кроме того, зачем вам это нужно? В этот день и возраст вы должны думать о Unicode, а не в ASCII. Если вы дадите людям понять, какова ваша цель, и как вы собираетесь использовать это возвращаемое значение, мы можем почти наверняка сообщить вам о лучшем способе его достижения.
char (с нижним регистром c) является числовым типом. Он уже содержит значение ascii char. Просто добавьте его к целому числу, чтобы отобразить его как числовое значение, а не текстовое значение:
System.out.println("char " + ch + " has the following value : " + (int) ch);
char a='a';
char A='A';
System.out.println((int)a +" "+(int)A);
Output:
97 65
просто выполните
int a = ch
(также это не имеет ничего общего с андроидом)