我想知道爲什麼char ch = 5; (例如) 是不是錯誤?但如果我打印爲什麼char ch = 4(沒有''),是不是erorr?
System.out.println(Character.isDigit(ch));
// output
false
它會是假的?
感謝所有
我想知道爲什麼char ch = 5; (例如) 是不是錯誤?但如果我打印爲什麼char ch = 4(沒有''),是不是erorr?
System.out.println(Character.isDigit(ch));
// output
false
它會是假的?
感謝所有
一個字符由內存中的兩個字節表示。 Java將5轉換爲一個字符。 '5'不是ASCII表中的第6個字符(其十六進制代碼是35而不是5),因此不是「數字」。
由於5
是文字的整數可以被轉換爲一個char
。然而,它不是字符'5'
。
如果你給ch = 5
,它會根據ASCII值自動轉換爲字符。
嘗試這個例子:
char ch = 97;
JOptionPane.showMessageDialog(null,"ch = "+ch);
答案是:CH =一
它根本不會放棄,即使97是不(' ')
因爲97代表的ASCII碼字符錯誤'a'
所以它不是一個數字,這就是爲什麼你會因此而失敗。
因爲'char'是一個(16位無符號)數字。 –
谷歌「ascii表」,看看你會得到的一些圖像。 「字符」(例如您現在正在閱讀的內容)每個都由數字代碼表示。數字5位於「控制代碼」部分,代表「查詢」控制代碼(這對於40歲的電傳打字機來說真的很有意義)。另一方面,字符「5」由值爲小數點的53的「char」表示。 –
這是一個基本問題,但並不是一個糟糕的問題,不應該被低估。任何人都可以找到文檔或JLS中描述此行爲的位置? – iamnotmaynard