簡體   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