亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

打印 Java 中的前 1000 個 Unicode 字符

打印 Java 中的前 1000 個 Unicode 字符

HUWWW 2021-10-28 16:47:24
我需要在 Java 中打印前 1000 個 unicode 字符,問題是我不知道如何將文本和 Unicode 的十六進制組合在一起。示例:我想打印空格,所以在println命令中插入“\u00”,在while循環中我需要添加其他2 00,但我不能像文本一樣插入它們?。ā?0”)。我給你我試過的東西......我在互聯網上找到了這段代碼,我已經修改了它,并且有一點錯誤,所以如果你也能修復它,我會很棒啊哈哈!public static void main(String[] args) {    char t[]="0123456789abcdef".toCharArray();    int i = 0;    while(i<1000) {            System.out.println("Char: " + t[i/16] + t[i%16] + " ==> " + "\u00" + t[i/16] + t[i++%16]);    }}PS:有時隨機,編譯器給我這個錯誤:at unicodetest.UnicodeTest.main(Char: 83 ==> 83UnicodeTest.java:10)第 10 行是:System.out.println("Char: " + t[i/16] + t[i%16] + " ==> " + t[i/16] + t[i++%16]);編輯:它應該是這樣的:Char: 20 ==> ' 'Char: 21 ==> '!'Char: 22 ==> '"'Char: 23 ==> '#'Char: 24 ==> '$'Char: 25 ==> '%'Char: 26 ==> '&'Char: 27 ==> '''Char: 28 ==> '('Char: 29 ==> ')'Char: 2a ==> '*'Char: 2b ==> '+'Char: 2c ==> ','Char: 2d ==> '-'Char: 2e ==> '.'Char: 2f ==> '/'Char: 30 ==> '0'Char: 31 ==> '1'Char: 32 ==> '2'Char: 33 ==> '3'Char: 34 ==> '4'Char: 35 ==> '5'Char: 36 ==> '6'Char: 37 ==> '7'Char: 38 ==> '8'Char: 39 ==> '9'Char: 3a ==> ':'Char: 3b ==> ';'Char: 3c ==> '<'Char: 3d ==> '='Char: 3e ==> '>'Char: 3f ==> '?'Char: 40 ==> '@'Char: 41 ==> 'A'Char: 42 ==> 'B'Char: 43 ==> 'C'Char: 44 ==> 'D'Char: 45 ==> 'E'Char: 46 ==> 'F'Char: 47 ==> 'G'...Char: 37b ==> '?'Char: 37c ==> '?'Char: 37d ==> '?'...Char: 3e4 ==> '?'Char: 3e5 ==> '?'Char: 3e6 ==> '?'Char: 3e7 ==> '?'
查看完整描述

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);

}


查看完整回答
反對 回復 2021-10-28
?
慕無忌1623718

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 );

   }


查看完整回答
反對 回復 2021-10-28
  • 2 回答
  • 0 關注
  • 211 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號