2

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

4

3 回答 3

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
于 2013-09-26T12:50:29.323 回答
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

于 2013-09-26T12:43:12.090 回答
0

你可能想要使用

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

然后从那里打开字符值。

正如其他人提到的,Java 适用于 UTF-16,但对于字符 [a-zA-z0-9] 和普通标点符号,您不会注意到区别。

InputStreamReader的 Javadoc:InputStreamReader Javadoc

于 2013-09-26T12:49:00.163 回答