基本上,我想在我的System.out.println
行中使用Unicode符号,但这些Unicode字符需要动态生成。
例如,取符号U+2074
,U+2075
和U+2076
,分别返回x^4
,x^5
和x^6
。要用Java打印它们,我会使用\u2074
,\u2075
和\u2076
,但是如果我想根据其他值生成它们(即\u207x
其中{{1}是变量)?
如果我使用的是PHP,我会使用variable variables进行此操作,这非常方便。
我甚至考虑过使用hack来保存x
作为字符串,对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");
。
那么,是否可以在Java中动态生成Unicode字符?
答案 0 :(得分:1)
您可以简单地将代码点值转换为char
:
(char)0x2070 + x
请注意,您可能会考虑十六进制的代码点值。