Расширенный ввод с консоли Java

В качестве самостоятельной практики я делаю BF- интерпретатор на Java, который выполняет ввод-вывод через консоль. По большей части это нормально, однако, как вы, наверное, знаете, BF принимает ввод по одному символу за раз, включая переводы строки. Это означает, что, насколько я знаю, стандартные консольные библиотеки ввода не будут работать, потому что они принимают целые строки и затем запрашивают возврат в конце. я хочу , принять в следующем нажатии клавиши, которая вписывается в char без печати, когда это напечатано. Поэтому, когда BF запрашивает ввод, и вы вводите a, занимает в a но не показывает это в консоли, если программа BF не выводит a Сам позже.

Как я могу это сделать?

3 ответа

Решение

Я предлагаю использовать JLine http://jline.sourceforge.net/

Terminal класс имеет disableEcho() способ делать то, что вы хотите.

Проверять, выписываться java.io.Console - вы можете прочитать строку без эхо с readPassword(), Он по-прежнему ориентирован на линию, поэтому вы ничего не получите, пока пользователь не нажмет Enter. Другим возможным недостатком является то, что консоли может не быть - это зависит от способа запуска приложения.

Напишите свой собственный вывод / ввод с консоли, используя textArea во фрейме и keyListener

Другие вопросы по тегам