是否可以在Java中动态生成Unicode字符?

时间:2016-03-23 15:30:56

标签: java string unicode

基本上,我想在我的System.out.println行中使用Unicode符号,但这些Unicode字符需要动态生成。

例如,取符号U+2074U+2075U+2076,分别返回x^4x^5x^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字符?

1 个答案:

答案 0 :(得分:1)

您可以简单地将代码点值转换为char

(char)0x2070 + x

请注意,您可能会考虑十六进制的代码点值。