Как я могу преобразовать в Java код ASCII (который является целым числом из диапазона [0, 255]) в соответствующий ему символ ASCII?
Например:
65 -> "A"
102 -> "f"
Как я могу преобразовать в Java код ASCII (который является целым числом из диапазона [0, 255]) в соответствующий ему символ ASCII?
Например:
65 -> "A"
102 -> "f"
Ответы:
Character.toString(char), stackoverflow.com/a/6210938/923560 предоставляет дополнительные решения.
(char)обозначения? Другими словами, почему я не могу просто поставить Character.toString(i);? (Java noob)
Integerтипа, вы получите ошибку «java.lang.Integer не может быть приведена к java.lang.Character». Добавьте приведение к intпервому, например: Character.toString((char)(int)myInteger);
iзначения (0-255) будет от набора символов ISO-8859-1. (Вопрос Аскер отказался определить , какой «расширенный ASCII» [неопределенный термин] разыскивают, за исключением того, принимая этот ответ.)
System.out.println((char)65);
напечатал бы "A"
(char) 65чтобы узнать, что это за персонаж.
String.valueOf(Character.toChars(int))
Предполагая, что целое число, как вы говорите, находится в диапазоне от 0 до 255, вы получите массив с одним символом обратно Character.toChars, который станет односимвольной строкой при передаче в String.valueOf.
Использование Character.toCharsпредпочтительнее методов, включающих приведение из intв char(т. Е. (char) i) По ряду причин, в том числе, которые Character.toCharsбудут выбрасывать, IllegalArgumentExceptionесли вам не удастся правильно проверить целое число, в то время как приведение поглотит ошибку (согласно спецификации сужающих примитивных преобразований ), потенциально давая вывод, отличный от того, что вы намеревались.
toChars.
Character.toString((char) i)быстрее String.valueOf(Character.toChars(i)). Выполнение быстрого теста на конвертацию 1 000 000 случайных целых чисел в заданном диапазоне (100 раз, чтобы быть безопасным) на моей машине дает среднее время 153,07 наносекунд против 862,39 наносекунд. Тем не менее, в любом интересном приложении будет гораздо более важные вещи для оптимизации. Дополнительная ценность безопасной, детерминированной обработки и простоты расширения за пределы диапазона [0,255], если это требуется, перевешивает незначительный удар по производительности.
new String(new char[] { 65 })
В итоге вы получите строку длиной один, единственный символ которой имеет код (ASCII) 65. В Java символы являются числовыми типами данных.
Можно итерировать от а до я, как это
int asciiForLowerA = 97;
int asciiForLowerZ = 122;
for(int asciiCode = asciiForLowerA; asciiCode <= asciiForLowerZ; asciiCode++){
search(sCurrentLine, searchKey + Character.toString ((char) asciiCode));
}
Более простой способ сделать то же самое:
Введите приведение целого числа к символу, пусть int nбудет целым числом, затем:
Char c=(char)n;
System.out.print(c)//char c will store the converted value.
for (int i = 0; i < 256; i++) {
System.out.println(i + " -> " + (char) i);
}
char lowercase = 'f';
int offset = (int) 'a' - (int) 'A';
char uppercase = (char) ((int) lowercase - offset);
System.out.println("The uppercase letter is " + uppercase);
String numberString = JOptionPane.showInputDialog(null,
"Enter an ASCII code:",
"ASCII conversion", JOptionPane.QUESTION_MESSAGE);
int code = (int) numberString.charAt(0);
System.out.println("The character for ASCII code "
+ code + " is " + (char) code);
Почему бы не упростить его до метода, который возвращает символ ascii?
public char toAscii (int input) {
return (char)input;
}
Это пример, который показывает, что путем преобразования int в char можно определить соответствующий символ в код ASCII.
public class sample6
{
public static void main(String... asf)
{
for(int i =0; i<256; i++)
{
System.out.println( i + ". " + (char)i);
}
}
}
верхний ответ только рядом с решением проблемы. вот твой ответ:
Integer.decode (Character.toString (char c));