繁体   English   中英

使用十六进制代码循环打印Unicode字符

[英]Print Unicode characters with hex code loop

我正在为以下代码非法转义unicode。

 for(int i=3400;i<4000;i++)
   System.out.println("\u" + i );

如果在输出\㐀而不是实际的unicode字符之前添加斜杠。

我想循环打印unicode字符。 unicode字符也是十六进制代码。 如何遍历十六进制代码并打印所有unicode字符。

您不能在运行时将"\\u\u0026quot;与某些内容连接在一起,因为在编译过程中会解析"\\uXXXX"序列。 但是不需要这样做。 您可以简单地将整数转换为char并使用0x前缀指定十六进制数字:

for(int i=0x3400;i<0x4000;i++)
    System.out.println((char)i);

您可以使用格式功能:-

for(int i=3400;i<4000;i++){
   System.out.format("\\u%04x", i);
}

或者根据这个答案使用这个:

for(int i=3400;i<4000;i++){
   System.out.println( "\\u" + Integer.toHexString(i| 0x10000).substring(1));
}

您正在寻找的是这样的:

    for (int i = 0x3400; i < 0x4000; i++) {
        System.out.println((char) i);
    }

您不要忘记, \\u\u003c/code>前缀后面的任何数字都是十六进制数字(基数16)。 从这个事实可以得出,在循环中,您将在十六进制间隔3400...4000丢失很多unicode字符。 因此,您应该将循环范围更改为0x34000x4000

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM