2013-03-07 123 views

回答

12

49是char 1的ASCII值。它是第一個字節的值。

流,當你進入 您的控制檯上輸入或終端包含三個字節{49,48,10}(我的Mac上,可以用10,12或12結尾,而不是所產生的字節 10,取決於你的系統)。

所以簡單的片斷

int b = System.in.read(); 
while (b != -1) { 
    System.out.println(b); 
    b = System.in.read(); 
} 

進入10和按下回車鍵後的輸出,是(我的機器上)

49 
48 
10 
+0

爲什麼不讀取整個'10'? – saplingPro 2013-03-07 14:21:27

+0

因爲'10'是兩個字節。表示字符1的字節,後跟表示字符「0」的字節。 – 2013-03-07 14:24:51

+0

@saplingPro'System.in.read()'只讀取一個字節。 – Maroun 2013-03-07 14:24:55

3

當你進入10,它不被讀取作爲整數,但是作爲一個字符串,或者更確切地說是一個字節數組。

49是字符1的ASCII碼。

4

System.in.read()只讀一個字節

爲的的Unicode點值。

嘗試打印:

System.out.println((char)49);

這將幫助你更瞭解它。

相關問題