Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/396.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
高级Java控制台输入_Java_Brainfuck_Esoteric Languages - Fatal编程技术网

高级Java控制台输入

高级Java控制台输入,java,brainfuck,esoteric-languages,Java,Brainfuck,Esoteric Languages,作为一种自我实践,我正在用Java制作一个解释器,通过控制台执行I/O。不过,正如您可能知道的那样,在大多数情况下,BF一次只接受一个字符的输入,包括换行符。这意味着,据我所知,标准控制台输入库无法工作,因为它们接收整个字符串,然后在最后请求返回。我希望,在下一次击键时将其放入字符,而不在键入时打印它。因此,当BF请求输入时,您输入a,它会接收a,但除非BF程序稍后输出a,否则不会显示在控制台中 我该怎么做呢?使用框架中的文本区域和按键侦听器编写您自己的控制台输出/输入我建议使用JLine Te

作为一种自我实践,我正在用Java制作一个解释器,通过控制台执行I/O。不过,正如您可能知道的那样,在大多数情况下,BF一次只接受一个字符的输入,包括换行符。这意味着,据我所知,标准控制台输入库无法工作,因为它们接收整个字符串,然后在最后请求返回。我希望
在下一次击键时将其放入
字符
,而不在键入时打印它。因此,当BF请求输入时,您输入
a
,它会接收
a
,但除非BF程序稍后输出
a
,否则不会显示在控制台中


我该怎么做呢?

使用框架中的文本区域和按键侦听器编写您自己的控制台输出/输入

我建议使用JLine


Terminal
类有一个
disableEcho()
方法来执行您想要的操作。

签出
java.io.Console
-您可以使用
readPassword()
读取不带echo的字符串。但它仍然是面向行的,所以在用户按Enter键之前,您不会收到任何内容。另一个可能的缺点是可能没有控制台,这取决于应用程序的启动方式。

他正在编写一个命令行工具,Swing组件在这方面没有帮助。