【问题标题】:java read every key pressed on console at a timejava一次读取控制台上按下的每个键
【发布时间】:2014-01-12 00:41:51
【问题描述】:

第一次提问。

我想要的是每次用户按下控制台上的某个键时都会发生某种操作的方式。就像,当他键入一个单词时,我希望在每次按键时获得一个字符串,该字符串由他已经按下要打印的所有键形成,并连接到新按下的键。如:

一个

你输入了:a

b

你输入:ab

c

你输入:abc

d

你输入:abcd

e

你输入了: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);
    }
}

我得到了我想要的,但是在我按下 Enter 键之后,而不是在控制台上按下每个键:

foobar

你输入了:f

你输入了:fo

你输入了:foo

你输入了:foob

你输入了:fooba

你输入了:foobar

提前致谢。

【问题讨论】:

标签: java string printing console


【解决方案1】:

好像有人问过这个问题。看起来共识是修改 System.in 在不同平台上是不同的,为了做你想做的事,你需要将终端从“行”模式更改为“字符”模式。

看看Here

【讨论】:

    猜你喜欢
    • 2021-01-21
    • 1970-01-01
    • 2011-03-05
    • 2020-08-10
    • 2012-03-08
    • 2018-04-06
    • 1970-01-01
    • 1970-01-01
    • 2013-05-09
    相关资源
    最近更新 更多