Как преобразовать код ASCII (0-255) в строку соответствующего символа?
У меня есть int int диапазон 0-255, и я хочу создать строку (длиной 1) так, чтобы значение ASCII этого одного символа было заданным целым числом.
есть ли простой способ сделать это в Java ?
пример:
65 -> "A"
102 -> "f"
10 ответов:
String.valueOf
(
Character.toChars(int)
)
предполагая, что целое число находится, как вы говорите, между 0 и 255, вы получите массив с одним символом обратно из
Character.toChars
, который станет односимвольной строкой при передаче вString.valueOf
.используя
Character.toChars
предпочтительнее методов, включающих приведение отint
доchar
(т. е.(char) i
) по ряду причин, в том числеCharacter.toChars
появитсяIllegalArgumentException
если вы не правильно проверьте целое число, в то время как приведение проглотит ошибку (за сужение спецификации примитивных преобразований), потенциально давая выход, отличный от того, что вы намеревались.
new String(new char[] { 65 }))
вы получите строку длины один, чей единственный символ имеет код (ASCII) 65. В Java символы-это числовые типы данных.
можно перебирать от a до z вот так
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);