【发布时间】:2019-10-01 12:17:23
【问题描述】:
有了jdk12,出现了国际象棋符号(source):
Unicode 11.0.0 引入了以下现在包含在 JDK 12 中的新功能
[...] 4 个块用于以下现有脚本:
格鲁吉亚语扩展
玛雅数字
ndic Siyaq 号码
国际象棋符号
考虑到这一点,我尝试使用以下代码打印这些字符,以测试功能并在以后的小象棋游戏中使用它们:
Character.UnicodeBlock block = Character.UnicodeBlock.CHESS_SYMBOLS;
for (int i = 0; i < 1114112; i++) {
char unicode = (char) i;
if(Character.UnicodeBlock.of(unicode) == block) {
System.out.println(unicode);
}
}
但是,它没有打印任何东西。如果我将CHESS_SYMBOLS 替换为例如ARABIC,则该代码有效。我有 java 12.0.1。
问题:为什么上面的代码没有打印任何东西?
【问题讨论】:
-
@StephenC 我正在使用 Intellij,如果我尝试
System.out.println("♔");它会打印符号,所以我相信它与代码严格相关 -
@SteveSmith 它没有打印矩形,它根本没有打印任何东西。另外我想使用
UniblockCode进行打印,或者至少了解它为什么不起作用。 -
您只检查前 65536 个字符,有 1,114,112 个 Unicode 字符。
-
@JGNI 我编辑了代码,但仍然没有打印。我也试过
Character.MAX_VALUE。