循环多个扫描器输入直到一个特定的输入



我是java新手,我正在为romanCalculator做这个作业。我目前正在做的计算部分,但我有一个问题与一些要求的规则。

如果输入不正确,必须打印错误。

这是其中一条规则,这些是唯一可能的输入

<possible Roman number> <operator> <possible Roman number>

<possible Roman number> <operator> <possible Roman number>

.

前两个比较容易理解。是退出程序。

这就是我能用我的知识所能做的:

Scanner in = new Scanner(System.in);
    String firstRoman = in.next();
    String operator = in.next();
    String secondRoman = in.next();

它只要求一次且只有一种形式的输入。我不知道如何应用这是什么要求,我很感激任何帮助。谢谢!

下面是一个例子:

begin{ipoutput} XX end{ipoutput}
begin{ipinput} *xii
begin{ipinput} /vi end{ipinput}
begin{ipoutput} XL
begin{ipoutput} MCDXLV end{ipoutput}
begin{ipinput} .
    Scanner in = new Scanner(System.in);
    String input = "";
    System.out.println("Enter your roman numbersnEx: X + Vn:");
    while(!(input = in.nextLine()).equals("."))
    {
        //assuming splitting the input around whitespace we can do the following
        String[] userInput = input.split("\s+");
        if(userInput.length == 3)
        {
            String firstRoman = userInput[0];
            String operator = userInput[1];
            String secondRoman = userInput[2];
            if(firstRoman.matches("[MCDXLV]+") && operator.matches("\+|\-") && secondRoman.matches("[MCDXLV]+"))
            {
                //we have some valid things to work with let's continue
                System.out.println("Valid input - " + input);
            }
            else{
                System.out.println("Invalid input - " + input);
            }
            //do your thing
        }
        else{
            System.out.println("Invalid input - " + input);
        }
        System.out.println("Enter your roman numbersnEx: X + Vn:");
    }

相关内容

  • 没有找到相关文章

最新更新