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