2012-06-04 66 views
0

如何打印大小寫字母的ascii代碼。 ?例如從鍵盤上按qevt.getKeyCode()給我81這是大寫字母Q的ASCII代碼。我怎樣才能打印ascii代碼的小字母?打印小字母的ascii代碼

+0

大寫鎖定是否打開,結果是一樣的。爲什麼這樣 ? –

回答

1

KeyEvent.getKeyCode()僅用於基本字母和數字返回ASCII碼。 對於A,使用ASCII碼65和a以65 + 32的ASCII碼獲得65。隨着!evt.isShiftDown(),你可以說這是一個a

關鍵代碼是由Java發明的,所謂的虛擬鍵。常數VK_A被隨意選擇爲A/a的ASCII碼。

+0

「isShiftDown」究竟做了什麼?我閱讀文檔'返回是否切換修改器是否關閉,但不明白是什麼意思 –

+0

要按'a',請按A鍵(VK_A)。要按'A',您同時按下VK_SHIFT和VK_A。 VK_A進入關鍵代碼; VK_SHIFT在所謂的「修飾符」字段中進入位掩碼。所以它只是意味着「向下移動」。 –

+0

是的,這是一個很好的檢查方法。對我來說有點掩碼是什麼,修飾符是不清楚的。是否有一些很好的來源,我可以在哪裏閱讀它們。請告訴你是否知道任何 –

1

正如ASCII A = 65和a = 97,我們發現在大寫和小寫之間有97-65 = 32的偏移量。

如果你得到Q = 81,你可以加32得到113 = q。

char c = (char)(evt.getKeyCode() + 32); 
+0

大寫鎖定是否打開,結果是一樣的。爲什麼這樣 ? –

+0

我相信KeyEvent類不關心鍵的情況,因爲q或Q是鍵盤上的相同鍵。如果你想區分q和Q鍵,你必須檢查是否按下Shift鍵。我認爲... – jlink

+0

什麼是'Maj'? –