JW String charкогда-нибудь скомпилирует. Может быть, вы хотите переименовать переменную вString ch
Викас Прасад
ASCII? Вы уверены, что это то, что вы хотите? Java использует кодировку UTF-16 набора символов Unicode (точно так же как JavaScript, .NET, VBA, VB4 / 5/6, NCHAR, NVARCHAR, NTFS, Windows API,…). Ответы делятся на несколько категорий: явный ответ об ASCII, ответ о UTF-16 и ответ об ASCII через несколько кратких переходов из UTF-16 (а также некоторые из них просто неверны).
Том Блоджет
Ответы:
298
Очень просто. Просто брось charкак int.
char character ='a';int ascii =(int) character;
В вашем случае вам нужно сначала получить конкретного персонажа из строки, а затем разыграть его.
char character = name.charAt(0);// This gives the character 'a'int ascii =(int) character;// ascii is now 97.
Хотя приведение не требуется явно, но это улучшает читаемость.
int ascii = character;// Even this will do the trick.
Просто помните, что «char» - зарезервированное слово в Java.
Холодно
12
Несколько ответов, показывающих, как это сделать, неверны, поскольку символы Java не являются символами ASCII. Java использует многобайтовую кодировку символов Unicode. Набор символов Unicode - это расширенный набор ASCII. Таким образом, в строке Java могут быть символы, которые не принадлежат ASCII. Такие символы не имеют числового значения ASCII, поэтому вопрос о том, как получить числовое значение ASCII символа Java, не подлежит рассмотрению.
Но почему ты так хочешь? Что вы собираетесь делать со значением?
Если вам нужно числовое значение, чтобы вы могли преобразовать строку Java в строку ASCII, реальный вопрос заключается в том, «как кодировать строку Java как ASCII». Для этого используйте объект StandardCharsets.US_ASCII.
Идеальный ответ. Типовое приведение - это просто сокращение, которое не является точным. Рад, что ваш ответ пришел с самого начала, чтобы люди не поняли концепцию.
Karthik R
Причина, по которой мне нужно знать строку ASCII, заключается в том, что у меня есть данные Unicode, поступающие в бэкэнд-процесс, который должен поместить чистый ASCII где-то еще, и мне это нужно, когда я получаю не-Unicode. Обычно, когда пользователи копируют вставки из MS Word (например, изогнутые двойные и одинарные кавычки, длинные тире и т. Д.). Упоминание StandardCharsets.US_ASCII - правильная вещь, но это не говорит оригинальному спрашивающему, как ее использовать.
Тихамер
public static String displayAsciiCode (String s, логическое значение useStandard) {String r = ""; byte [] ascii = null; if (useStandard) {ascii = s.getBytes (StandardCharsets.US_ASCII); for (int i = 0; i <ascii.length; i ++) {byte b = ascii [i]; r = r + "" + s.charAt (i) + "=" + (int) b; }} else {ascii = s.getBytes (); for (int i = 0; i <ascii.length; i ++) {byte b = ascii [i]; r = r + "" + Character.toString ((char) ascii [i]) + "=" + (int) b; }} return r; }
Тихамер
Вызвать вышеупомянутое с помощью: String string = "This« is "странно"; System.out.println ("strings =" + string); System.out.println (displayAsciiCode (string, true)); System.out.println (displayAsciiCode (string, false)); В результате получается следующее: strings = Это «странно». T = 84 h = 104 i = 105 с = 115 = 32 «= 63 i = 105 с = 115» = 63 = 32 с = 115 т = 116 т = 114 а = 97 n = 110 g = 103 e = 101 T = 84 h = 104 i = 105 с = 115 = 32 ¬ = -30 タ = -128 ワ = -100 i = 105 с = 115 ¬ = -30 タ = -128 -= -99 = 32 с = 115 т = 116 г = 114 а = 97 н = 110 г = 103 д = 101
Тихамер
10
Если вы хотите преобразовать всю строку в сцепленные значения ASCII, вы можете использовать это -
String str ="abc";// or anything elseStringBuilder sb =newStringBuilder();for(char c : str.toCharArray())
sb.append((int)c);BigInteger mInt =newBigInteger(sb.toString());System.out.println(mInt);
Хотя этот фрагмент кода может решить вопрос, в том числе объяснение действительно помогает улучшить качество вашего сообщения. Помните, что вы отвечаете на вопрос читателей в будущем, и эти люди могут не знать причин, по которым вы предлагаете код.
DimaSan
1
Это просто, получить нужный символ и преобразовать его в int.
Я знаю, что на этот вопрос уже был дан ответ в нескольких формах, но вот мой фрагмент кода, в котором рассматриваются все символы.
Вот код, начатый с класса
publicclassCheckChValue{// Class namepublicstaticvoid main(String[] args){// class mainString name ="admin";// String to check it's valueint nameLenght = name.length();// length of the string used for the loopfor(int i =0; i < nameLenght ; i++){// while counting characters if less than the length add one char character = name.charAt(i);// start on the first characterint ascii =(int) character;//convert the first characterSystem.out.println(character+" = "+ ascii);// print the character and it's value in ascii}}
Java использует Unicode для stringи char. Текстовая единица в Unicode - это графема, которая является базовой кодовой точкой, за которой следует ноль или более комбинаций кодовых точек. Кодовая точка в Java кодируется в UTF-16, для чего может потребоваться одна или две 16-битных кодовых единицы ( char) для кодовой точки. Чтобы перебрать кодовые точки, посмотрите этот ответ . Например, код должен быть уже готов к появлению новой руки U + 1F91E с кодовой точкой INDEX и MIDDLE FINGERS CROSSED.
Том Блоджет
1
String str ="abc";// or anything else// Stores strings of integer representations in sequenceStringBuilder sb =newStringBuilder();for(char c : str.toCharArray())
sb.append((int)c);// store ascii integer string array in large integerBigInteger mInt =newBigInteger(sb.toString());System.out.println(mInt);
Хотя этот код может ответить на вопрос, лучше объяснить, что он делает, и добавить к нему несколько ссылок.
Хамид Пуржам
1
String name ="admin";char[] ch = name.toString().toCharArray();//it will read and store each character of String and store into char[].for(int i=0; i<ch.length; i++){System.out.println(ch[i]+"-->"+(int)ch[i]);//this will print both character and its value}
new String(byte[])использует еще одну кодировку символов - так называемое системное значение по умолчанию, которое зависит от времени, компьютеров и пользователей; почти никогда не полезно. То, что вы называете, asciiStringпо-прежнему UTF-16, потому что это все, что есть в Java.
Том Блоджет
@ TomBlodget, я согласен. Но я думаю, что OP хотел знать, как получить ASCII-представление данного персонажа. Это просто кодировка, поскольку java не может делать необработанный ASCII
Я пытался сделать то же самое, но лучшим и простым решением было бы использовать charAt и для доступа к индексам мы должны создать целочисленный массив размером [128].
String name ="admin";int ascii = name.charAt(0);int[] letters =newint[128];//this will allocate space with 128byte size.
letters[ascii]++;//increments the value of 97 to 1;System.out.println("Output:"+ ascii);//Outputs 97System.out.println("Output:"+ letters[ascii]);//Outputs 1 if you debug you'll see 97th index value will be 1.
В случае, если вы хотите отобразить ascii значения полной строки, вам нужно сделать это.
String name ="admin";char[] val = name.toCharArray();for(char b: val){int c = b;System.out.println("Ascii value of "+ b +" is: "+ c);}
В этом случае вы получите: Ascii значение a равно: 97 Ascii значение d равно: 100 Ascii значение m равно: 109 Ascii значение i равно: 105 Ascii значение n равно: 110
publicclassConvertToAscii{publicstaticvoid main(String args[]){String abc ="admin";int[]arr =newint[abc.length()];System.out.println("THe asscii value of each character is: ");for(int i=0;i<arr.length;i++){
arr[i]= abc.charAt(i);// assign the integer value of character i.e asciiSystem.out.print(" "+arr[i]);}}}
Выход:
THe asscii value of each character is:
97 100 109 105 110
Здесь abc.charAt(i)дается один символ массива String: когда мы назначаем каждый символ целочисленному типу, то компилятор выполняет преобразование типа как,
arr[i] = (int) character // Here, every individual character is coverted in ascii value
Но для одного персонажа:
String name = admin;
asciiValue = (int) name.charAt(0);// for character 'a'
System.out.println(asciiValue);
String char
когда-нибудь скомпилирует. Может быть, вы хотите переименовать переменную вString ch
Ответы:
Очень просто. Просто брось
char
какint
.В вашем случае вам нужно сначала получить конкретного персонажа из строки, а затем разыграть его.
Хотя приведение не требуется явно, но это улучшает читаемость.
источник
int ascii = (int)name.charAt(0);
просто другой подход
bytes[0]
будет представлять ascii a .. и, следовательно, другие символы во всем массиве.источник
Вместо этого:
Вы должны использовать
charAt()
метод.источник
Несколько ответов, показывающих, как это сделать, неверны, поскольку символы Java не являются символами ASCII. Java использует многобайтовую кодировку символов Unicode. Набор символов Unicode - это расширенный набор ASCII. Таким образом, в строке Java могут быть символы, которые не принадлежат ASCII. Такие символы не имеют числового значения ASCII, поэтому вопрос о том, как получить числовое значение ASCII символа Java, не подлежит рассмотрению.
Но почему ты так хочешь? Что вы собираетесь делать со значением?
Если вам нужно числовое значение, чтобы вы могли преобразовать строку Java в строку ASCII, реальный вопрос заключается в том, «как кодировать строку Java как ASCII». Для этого используйте объект
StandardCharsets.US_ASCII
.источник
Если вы хотите преобразовать всю строку в сцепленные значения ASCII, вы можете использовать это -
при этом вы получите 979899 в качестве вывода.
Кредит на это .
Я просто скопировал его здесь, чтобы другим было удобно.
источник
Конвертировать char в int.
Также :
источник
Просто приведите чарса к int.
Значение
number
будет 97.источник
источник
Это просто, получить нужный символ и преобразовать его в int.
источник
Я знаю, что на этот вопрос уже был дан ответ в нескольких формах, но вот мой фрагмент кода, в котором рассматриваются все символы.
Вот код, начатый с класса
}
источник
string
иchar
. Текстовая единица в Unicode - это графема, которая является базовой кодовой точкой, за которой следует ноль или более комбинаций кодовых точек. Кодовая точка в Java кодируется в UTF-16, для чего может потребоваться одна или две 16-битных кодовых единицы (char
) для кодовой точки. Чтобы перебрать кодовые точки, посмотрите этот ответ . Например, код должен быть уже готов к появлению новой руки U + 1F91E с кодовой точкой INDEX и MIDDLE FINGERS CROSSED.источник
источник
Как указал @Raedwald, Unicode в Java не обслуживает все символы, чтобы получить значение ASCII. Правильный путь (Java 1.7+) заключается в следующем:
источник
new String(byte[])
использует еще одну кодировку символов - так называемое системное значение по умолчанию, которое зависит от времени, компьютеров и пользователей; почти никогда не полезно. То, что вы называете,asciiString
по-прежнему UTF-16, потому что это все, что есть в Java.Простой способ для этого:
Если вы напечатаете «персонаж», вы получите 97.
источник
Или вы можете использовать Stream API для 1 символа или строку, начиная с Java 1.8:
источник
используя Java 9 => String.chars ()
вывод - [115, 116, 97, 99, 107, 111, 118, 101, 114, 102, 108, 111, 119]
источник
Вы можете проверить номер ASCII с этим кодом.
Если я ошибаюсь, извиняюсь.
источник
Если вы хотите ASCII-значение всех символов в строке. Вы можете использовать это:
и если вы хотите ASCII одного символа в строке, вы можете пойти для:
источник
Я пытался сделать то же самое, но лучшим и простым решением было бы использовать charAt и для доступа к индексам мы должны создать целочисленный массив размером [128].
В случае, если вы хотите отобразить ascii значения полной строки, вам нужно сделать это.
В этом случае вы получите: Ascii значение a равно: 97 Ascii значение d равно: 100 Ascii значение m равно: 109 Ascii значение i равно: 105 Ascii значение n равно: 110
источник
Самый простой способ сделать это:
Для всей строки в ASCII:
Выход:
THe asscii value of each character is: 97 100 109 105 110
Здесь
abc.charAt(i)
дается один символ массива String: когда мы назначаем каждый символ целочисленному типу, то компилятор выполняет преобразование типа как,arr[i] = (int) character // Here, every individual character is coverted in ascii value
Но для одного персонажа:
String name = admin; asciiValue = (int) name.charAt(0);// for character 'a' System.out.println(asciiValue);
источник
Для этого мы могли бы сразу использовать String Classe's
Я хотел бы дать еще одно предложение по преобразованию всей строки в соответствующие коды ASCII, используя Java 8, например, «abcde» в «979899100101».
источник