第一次提出问题。
我想要的是每次用户按下控制台上的某个键时确定某些动作发生的方式。就像,当他输入一个单词时,我希望在每个按键上输入一个由他已经按下的所有按键形成的字符串,连接到新按下的按键。如:
一
您输入了:a
B'/ P>
您输入了:ab
C
您键入:abc
d
您键入:abcd
ë
您键入:abcde
我正在尝试使用以下代码执行此操作:
try (BufferedReader input = new BufferedReader(
new InputStreamReader(System.in, "UTF-8"))) {
char c = 0;
String s = "";
while( (c = (char) input.read() ) != 13) {
s += c;
System.out.println("You typed: " + s);
}
}
我得到了我想要的东西,但是在我按下回车键后,而不是按下控制台上的每个按键:
foobar的
您输入了:f
您键入:fo
你键入:foo
您键入:foob
你打字:fooba
您键入:foobar
提前致谢。
答案 0 :(得分:2)
看起来有人问过这个问题。看起来这样的共识是修改System.in在不同平台上是不同的,为了做你想做的事,你需要将终端从“行”模式改为“字符”模式。
看看Here。