存储和读取不同类型的用户输入



为了提供一点上下文,我试图只编程图灵机的简单函数。我很难将用户输入(字符串和整数)存储到数组列表中,然后让程序读取数组并根据输入执行一系列命令。下面是字母。

public void  postMenu()
{   
say( "tItimport file"                       );
say( "tMtenter multiple inputs"             );
say( "tXtexit program"                      );
say( "tStenter single input"                );
say( "" );
say( "Enter command:" );
}
public void SecondMenu()
{
say( "t?tprint current cell"                );
say( "t=tassign new symbol to current cell" );
say( "tEterase current cell"                );
say( "tLtmove head to left"                 );
say( "tRtmove head to right"                );
say( "tBtrewind to beginning of tape"       );
say( "tDtdump contents of tape"             );
}
public void  say( String  s )
{
System.out.println( s );
}

例如,用户键入M以输入多个输入

例如:1.R0R'空白'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 == " ");

现在,如果我开始输入字母,我会收到一条错误消息。对于用户输入:*整数不能是二进制数以外的数字(我不太确定"空白"输入是否会被归类为字符串或int。)

  • 如果输入二进制以外的任何内容,它将返回一条错误消息,说明输入无效,并要求正确输入。

  • 还可以输入字母,以便程序在磁带上移动。

  • 键入"完成"将结束输入。

简而言之,我需要能够将二进制整数和字符串(字母和Done)作为对象存储到数组列表中(如果有更简单的存储方法,请将其包含在内),并让程序读取所述用户输入数组,并根据读取的字母执行命令。

你的whiles做得太多了,而且每次都在重新初始化一个新的arraylist,我认为这不是你想要的。据我所知,你只想在数组列表中添加1或0和字母?

say("Type Done to Finish Inputs");
String input = "";
Integer binaryinput;
List<Object>inputs = new ArrayList<Object>();
do {
input = getReq.nextLine();
//check for binary
if(input.matches("\d"))
{
binaryinput = Integer.parseInt(input);
if(binaryinput == 1 || binaryinput == 0)
inputs.add(binaryinput);
}
//check for a single character
else
{
if(input.length() == 1)
inputs.add(input);  
}
} while (!input.equals("done"));

以上代码示例

Type Done to Finish Inputs
1
6
2
3
4
1
0
0
1
a
b
c
d
fg
done

输入包含以下

[1, 1, 0, 0, 1, a, b, c, d]

相关内容

  • 没有找到相关文章

最新更新