Просто для того, чтобы дать немного контекста, я пытаюсь запрограммировать только простые функции машины Тьюринга. У меня возникли проблемы с сохранением пользовательского ввода (обе строки и целые числа) в arraylist, а затем с программой, прочитанной через массив и выполняющей серию команд на основе ввода. Ниже приведены буквы.Хранение и чтение различных типов ввода пользователя
public void postMenu()
{
say("\tI\timport file" );
say("\tM\tenter multiple inputs" );
say("\tX\texit program" );
say("\tS\tenter single input" );
say("");
say("Enter command:");
}
public void SecondMenu()
{
say("\t?\tprint current cell" );
say("\t=\tassign new symbol to current cell");
say("\tE\terase current cell" );
say("\tL\tmove head to left" );
say("\tR\tmove head to right" );
say("\tB\trewind to beginning of tape" );
say("\tD\tdump contents of tape" );
}
public void say(String s)
{
System.out.println(s);
}
Так, например, пользователь вводит в M для ввода нескольких входов
Ex: R R 'пустой' R т.д. Программа будет производить ' лента ", которая читает [1, 0, 'blank'] У меня есть проблема с этой частью.
else
if (command == 'M')
{
say("Type Done to finish inputs");
String input = getReq.next();
int binaryinput = getReq.nextInt();
do {
List<Object>inputs = new ArrayList<Object>();
while(!"Done".equalsIgnoreCase(input)){
inputs.add(Integer.parseInt(input));
input=getReq.next();
if(inputs.isEmpty())
return;
}
} while (binaryinput == 0 && binaryinput == 1 && input == " ");
Прямо сейчас, если я начинаю вводить буквы, я получаю сообщение об ошибке. Для входа пользователя: * Целые не может быть, кроме двоичных чисел (я не совсем уверен, что если «пустой» ввод будет классифицировать как строка или внутр.)
Если номера ничего другого чем введенный двоичный код, он вернет сообщение с сообщением об ошибке, указывающее на ввод, и запросит правильный ввод.
Буквы также могут быть введены так, чтобы программа перемещалась по ленте.
Напечатать «Готово» закончит вход.
Короче говоря, мне нужно, чтобы иметь возможность хранить как двоичные целые числа и строки (буквы и DONE) как объекты в ArrayList (если есть более простой способ для хранения, пожалуйста, включите его), и иметь программу прочитайте упомянутый пользовательский входной массив и выполните команды на основе букв, которые он читает.
ваше время не имеет смысла, вы никогда не будете иметь условие, при котором binaryinput == 0 && binaryinput = = 1, возможно, вы хотели использовать ||? –
также при сравнении строк используют .equals, в том же, пока вы используете == –