#java #brainfuck #esoteric-languages
#java #brainfuck #эзотерические языки
Вопрос:
В качестве самостоятельной практики я создаю интерпретатор BF на Java, который выполняет ввод-вывод через консоль. По большей части это нормально, однако, как вы, возможно, знаете, BF вводит по одному символу за раз, включая новые строки. Это означает, что, насколько я знаю, стандартные библиотеки консольного ввода не будут работать, потому что они принимают целые строки, а затем запрашивают возврат в конце. Я хочу ,
использовать следующее нажатие клавиши, которое вписывается в char
без ее печати при вводе. Поэтому, когда BF запрашивает ввод, и вы вводите a
, он принимает a
, но не показывает его в консоли, если только программа BF не выведет a
себя позже.
Как я могу это сделать?
Ответ №1:
Я предлагаю использовать JLine http://jline.sourceforge.net
У Terminal
класса есть disableEcho()
метод для выполнения того, что вы хотите.
Ответ №2:
Напишите свой собственный консольный вывод / ввод, используя текстовую область во фрейме и KeyListener
Комментарии:
1. Он пишет инструмент командной строки, компоненты Swing там не помогут.
Ответ №3:
Проверьте java.io.Console
— вы можете прочитать строку без echo с readPassword()
. Он по-прежнему ориентирован на строку, поэтому вы ничего не получите, пока пользователь не нажмет Enter. Другим возможным недостатком является то, что может отсутствовать консоль — зависит от способа запуска приложения.