2 回答

TA贡献2065条经验 获得超14个赞
用于Character.toChars(int)从代码点转换为表示字符。下面将打印 U+0000 和 U+03E8 之间的所有 UTF 字符,前 1000 个代码点。
public static void main(String[] args) {
IntStream.range(0, 1000)
.mapToObj(i -> "Char: " + i + " ==> " + new String(Character.toChars(i)))
.forEach(System.out::println);
}

TA贡献1744条经验 获得超4个赞
这是一个略有不同的答案,它不使用流。您应该能够修改它以产生您喜欢的任何输出。
我正在使用一些技巧。第一个是它char是一个整数,可以提升为int. 所以为了初始化计数器,我实际上给它分配了第一个 ASCII 字符,它是' '(一个空格)。前 32 个 ASCII 字符是控制字符并且不打印,所以我只是跳过它们。
第二个是,而不是调用Character.toChars()我只是强制转换为intto char。只要您完全控制输入并且没有范围错误,这就可以正常工作。
public static void main( String[] args ) {
for( int i = ' '; i < 1000; i++ )
System.out.println( "Char: " + Integer.toHexString( i )
+ " ==> " + (char)i );
}
添加回答
举报