Для платформ на базе MIDP 2 / CLDC 1.1 (которых нет Character.toString(char), stackoverflow.com/a/6210938/923560 предоставляет дополнительные решения.
Abdull
В чем причина (char)обозначения? Другими словами, почему я не могу просто поставить Character.toString(i);? (Java noob)
Адам Хьюз
1
Обратите внимание, что это не будет работать для Integerтипа, вы получите ошибку «java.lang.Integer не может быть приведена к java.lang.Character». Добавьте приведение к intпервому, например: Character.toString((char)(int)myInteger);
gbmhunter
1
Эти iзначения (0-255) будет от набора символов ISO-8859-1. (Вопрос Аскер отказался определить , какой «расширенный ASCII» [неопределенный термин] разыскивают, за исключением того, принимая этот ответ.)
Предполагая, что целое число, как вы говорите, находится в диапазоне от 0 до 255, вы получите массив с одним символом обратно Character.toChars, который станет односимвольной строкой при передаче в String.valueOf.
Использование Character.toCharsпредпочтительнее методов, включающих приведение из intв char(т. Е. (char) i) По ряду причин, в том числе, которые Character.toCharsбудут выбрасывать, IllegalArgumentExceptionесли вам не удастся правильно проверить целое число, в то время как приведение поглотит ошибку (согласно спецификации сужающих примитивных преобразований ), потенциально давая вывод, отличный от того, что вы намеревались.
Предполагая, что целое число находится в диапазоне от 0 до 255 (как вы заявляете, что вы делаете ... и как указывает вопрос), это не нужно и неоптимально для использования toChars.
Стивен С
5
Вы совершенно правы, что что-то вроде Character.toString((char) i)быстрее String.valueOf(Character.toChars(i)). Выполнение быстрого теста на конвертацию 1 000 000 случайных целых чисел в заданном диапазоне (100 раз, чтобы быть безопасным) на моей машине дает среднее время 153,07 наносекунд против 862,39 наносекунд. Тем не менее, в любом интересном приложении будет гораздо более важные вещи для оптимизации. Дополнительная ценность безопасной, детерминированной обработки и простоты расширения за пределы диапазона [0,255], если это требуется, перевешивает незначительный удар по производительности.
Ответы:
Character.toString ((char) i);
источник
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], если это требуется, перевешивает незначительный удар по производительности.это простое решение
источник
В итоге вы получите строку длиной один, единственный символ которой имеет код (ASCII) 65. В Java символы являются числовыми типами данных.
источник
Можно итерировать от а до я, как это
источник
Более простой способ сделать то же самое:
Введите приведение целого числа к символу, пусть
int n
будет целым числом, затем:источник
источник
Почему бы не упростить его до метода, который возвращает символ ascii?
источник
Это пример, который показывает, что путем преобразования int в char можно определить соответствующий символ в код ASCII.
источник
верхний ответ только рядом с решением проблемы. вот твой ответ:
Integer.decode (Character.toString (char c));
источник