2012-06-04 163 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'? –