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 );
}
添加回答
舉報