作为一种自我练习,我在Java中使用BF解释器通过控制台进行I / O操作。在大多数情况下,它很好,但是,正如您可能知道的那样,BF一次输入一个字符,包括换行符。这意味着据我所知,标准控制台输入库将无法工作,因为它们接收整个字符串,然后在最后请求返回。我希望,
能够接受适合char
的下一个击键,而不会在键入时打印它。因此,当BF请求输入并输入a
时,它会接收a
,但不会在控制台中显示它,除非BF程序稍后输出a
。
我该怎么做?
答案 0 :(得分:1)
我建议使用JLine http://jline.sourceforge.net
Terminal
类有disableEcho()
方法可以执行您想要的操作。
答案 1 :(得分:0)
使用框架中的textArea和keyListener
编写自己的控制台输出/输入答案 2 :(得分:0)
查看java.io.Console
- 您可以使用readPassword()
读取没有回音的字符串。它仍然是面向行的,因此在用户按Enter键之前不会收到任何内容。另一个可能的缺点是可能没有控制台 - 取决于应用程序的启动方式。