高级Java控制台输入
作为一种自我实践,我正在用Java制作一个解释器,通过控制台执行I/O。不过,正如您可能知道的那样,在大多数情况下,BF一次只接受一个字符的输入,包括换行符。这意味着,据我所知,标准控制台输入库无法工作,因为它们接收整个字符串,然后在最后请求返回。我希望高级Java控制台输入,java,brainfuck,esoteric-languages,Java,Brainfuck,Esoteric Languages,作为一种自我实践,我正在用Java制作一个解释器,通过控制台执行I/O。不过,正如您可能知道的那样,在大多数情况下,BF一次只接受一个字符的输入,包括换行符。这意味着,据我所知,标准控制台输入库无法工作,因为它们接收整个字符串,然后在最后请求返回。我希望,在下一次击键时将其放入字符,而不在键入时打印它。因此,当BF请求输入时,您输入a,它会接收a,但除非BF程序稍后输出a,否则不会显示在控制台中 我该怎么做呢?使用框架中的文本区域和按键侦听器编写您自己的控制台输出/输入我建议使用JLine Te
,
在下一次击键时将其放入字符,而不在键入时打印它。因此,当BF请求输入时,您输入a
,它会接收a
,但除非BF程序稍后输出a
,否则不会显示在控制台中
我该怎么做呢?使用框架中的文本区域和按键侦听器编写您自己的控制台输出/输入我建议使用JLine
Terminal
类有一个disableEcho()
方法来执行您想要的操作。签出java.io.Console
-您可以使用readPassword()
读取不带echo的字符串。但它仍然是面向行的,所以在用户按Enter键之前,您不会收到任何内容。另一个可能的缺点是可能没有控制台,这取决于应用程序的启动方式。他正在编写一个命令行工具,Swing组件在这方面没有帮助。