打印字符串文字unicode作为实际字符

dig*_*nie 16 java unicode

在我的Java应用程序中,我传递了一个如下所示的字符串:

"\ u00a5123"

将该字符串打印到控制台时,我得到与输出相同的字符串(如预期的那样).

但是,我想通过将unicode转换为实际的日元符号(\ u00a5 - >日元符号)来打印出来 - 我将如何进行此操作?

即所以它看起来像这样:"[日元符号] 123"

ape*_*ins 16

我写了一个小程序:

public static void main(String[] args) {
    System.out.println("\u00a5123");
}
Run Code Online (Sandbox Code Playgroud)

它的输出:

¥123

即它输出的确与您在帖子中所述的内容完全相同.我不确定是否还有其他事情发生.您使用的是哪个版本的Java?

编辑:

为了回应您的澄清,有几种不同的技术.最简单的方法是查找"\ u"后跟4个十六进制代码字符,提取该片段并用带有十六进制代码的unicode版本替换(使用Character类).这当然假设字符串前面没有\ u.

我不知道任何特定的系统来解析String,好像它是一个编码的Java字符串.