基于控制台的密钥监听器Java

时间:2013-09-26 12:35:42

标签: java console key ascii listener

我正在尝试用Java编写一个基于文本的小游戏。我之前用C ++编写过这个,但我在C ++中使用了“getch()”,我不知道java等价。我很新,所以不是很有经验,但我能学习。在Java中是否有Java等同于“getch()”?它需要返回密钥的ASCII值。想法?

3 个答案:

答案 0 :(得分:3)

您可以使用BufferedReader复制getch()

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class myclass 
{
    public static void main(String[] args) 
    {

        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        System.out.println("Press Enter to continue");
        try 
        {
            int ascii = br.read();
            System.out.println("ASCII Value - "+ascii);
        }
        catch (IOException e)
        {
            e.printStackTrace();
        }
    } 
}

输出

Enter any character to continue
<press a then hit Enter>
ASCII Value - 97

答案 1 :(得分:0)

通常,您从System.in读取输入。您可以通过多种方式从此流中读取,但一种选择是使用java.util.scanner。

尝试类似:

import java.util.Scanner;

Scanner keyboard = new Scanner(System.in);
byte mybyte = keyboard.nextByte();

http://docs.oracle.com/javase/1.5.0/docs/api/java/util/Scanner.html

答案 2 :(得分:0)

您可能想要使用

InputStreamReader inStream = new InputStreamReader(System.in);
int charValue = inStream.read();

然后从那里打开字符值。

正如其他人提到的,Java适用于UTF-16,但对于字符[a-zA-z0-9]和正常的标点符号,你不会注意到差异。

InputStreamReader的Javadoc:InputStreamReader Javadoc