2016-03-23 3 views
0

В принципе, я хотел бы использовать символы Юникода в моих линиях System.out.println, но эти символы Юникода должны быть динамически сгенерированы.Можно ли динамически генерировать символы Unicode в Java?

Например, возьмем символы U+2074, U+2075 и U+2076, которые возвращают, соответственно, x^4, x^5 и x^6. Чтобы напечатать их в Java, я использовал бы \u2074, \u2075 и \u2076, но что, если я хочу их сгенерировать на основе другого значения (т. Е. \u207x, где x - переменная)?

Если бы я использовал PHP, я бы использовал variable variables для этого, что было бы очень удобно.

Я даже зашел так далеко, как думают об использовании хака как сохранение u207 в виде строки, что делает мои расчеты стоимости x и добавления этого значения в строку, а затем есть вопросы, которые вводят \ символ внутри строки :

String unicodeBase = "u207"; 
// I do something to get a value for x 
String unicodeChar = "u207" + x; 
System.out.println("\unicodeChar"); 

Если я делаю это, я получаю illegal unicode escape ошибку, которая, как ожидается. Но тогда, если я избежать \ символа, то на выходе является строкой, которая не обрабатывается:

System.out.println("\\unicodeChar"); 

Это возвращает строку unicodeChar.

Итак, возможно ли динамически генерировать символы Unicode в Java?

ответ

1

Вы можете просто бросить значение в элемент кода char:

(char)0x2070 + x 

Обратите внимание, что вы, вероятно, думать о значениях в шестнадцатеричном элемент кода.

+0

Интересно, по крайней мере, это не ошибка. Если я это сделаю, я просто получу надстрочный '0' и ничего больше. – user1301428

+0

Тогда у вас неправильный код. – SLaks

Смежные вопросы