Печать символов Юникода с помощью шестнадцатеричного кода
Я получаю нелегальный Unicode escape для следующего кода.
for(int i=3400;i<4000;i++)
System.out.println("\u" + i );
Если я добавлю косую черту до того, как получу \u3400
как вывод вместо фактического символа Юникода.
Я хочу напечатать символы Юникода в цикле. Также символы Юникода являются шестнадцатеричными кодами. Как перебрать шестнадцатеричные коды и распечатать все символы Юникода.
3 ответа
Вы не можете объединить "\u"
с чем-то во время выполнения, потому что "\uXXXX"
последовательности анализируются во время компиляции. Однако не нужно этого делать. Вы можете просто привести целые числа к символам и использовать 0x
префикс для указания шестнадцатеричных чисел:
for(int i=0x3400;i<0x4000;i++)
System.out.println((char)i);
То, что вы ищете, это что-то вроде:
for (int i = 0x3400; i < 0x4000; i++) {
System.out.println((char) i);
}
Не стоит забывать, что любое число после \u
префикс - шестнадцатеричное число (основание 16). Из этого факта следует, что в вашем цикле вы потеряете много символов Юникода в шестнадцатеричном интервале 3400...4000
, Итак, вы должны изменить диапазон цикла 0x3400
а также 0x4000
,