使用十六进制代码循环打印 Unicode 字符
Print Unicode characters with hex code loop
我得到以下代码的非法 unicode 转义。
for(int i=3400;i<4000;i++)
System.out.println("\u" + i );
如果我在得到 \u3400
作为输出而不是实际的 unicode 字符之前添加斜杠。
我想循环打印unicode字符。
unicode 字符也是十六进制代码。如何遍历十六进制代码并打印所有 unicode 字符。
您可以使用 format 功能:-
for(int i=3400;i<4000;i++){
System.out.format("\u%04x", i);
}
或者根据 this 答案使用这个 :-
for(int i=3400;i<4000;i++){
System.out.println( "\u" + Integer.toHexString(i| 0x10000).substring(1));
}
您不能在运行时将 "\u"
与某些内容连接起来,因为 "\uXXXX"
序列在编译期间被解析。但是不需要这样做。您可以简单地将整数转换为字符并使用 0x
前缀来指定十六进制数:
for(int i=0x3400;i<0x4000;i++)
System.out.println((char)i);
你要找的是这样的:
for (int i = 0x3400; i < 0x4000; i++) {
System.out.println((char) i);
}
你不应该忘记,\u
前缀之后的任何数字都是十六进制数(基数 16)。从这个事实可以看出,在您的循环中,您将在十六进制间隔 3400...4000
中丢失很多 unicode 字符。因此,您应该将循环范围更改为 0x3400
和 0x4000
.
我得到以下代码的非法 unicode 转义。
for(int i=3400;i<4000;i++)
System.out.println("\u" + i );
如果我在得到 \u3400
作为输出而不是实际的 unicode 字符之前添加斜杠。
我想循环打印unicode字符。 unicode 字符也是十六进制代码。如何遍历十六进制代码并打印所有 unicode 字符。
您可以使用 format 功能:-
for(int i=3400;i<4000;i++){
System.out.format("\u%04x", i);
}
或者根据 this 答案使用这个 :-
for(int i=3400;i<4000;i++){
System.out.println( "\u" + Integer.toHexString(i| 0x10000).substring(1));
}
您不能在运行时将 "\u"
与某些内容连接起来,因为 "\uXXXX"
序列在编译期间被解析。但是不需要这样做。您可以简单地将整数转换为字符并使用 0x
前缀来指定十六进制数:
for(int i=0x3400;i<0x4000;i++)
System.out.println((char)i);
你要找的是这样的:
for (int i = 0x3400; i < 0x4000; i++) {
System.out.println((char) i);
}
你不应该忘记,\u
前缀之后的任何数字都是十六进制数(基数 16)。从这个事实可以看出,在您的循环中,您将在十六进制间隔 3400...4000
中丢失很多 unicode 字符。因此,您应该将循环范围更改为 0x3400
和 0x4000
.