首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Java Check for Calculator程序

Java Check for Calculator程序
EN

Stack Overflow用户
提问于 2020-06-05 10:07:28
回答 1查看 117关注 0票数 1

我是java编程的新手,需要帮助检查我正在编写的一个计算器程序!这就是我试图在我的程序中写一个检查:->如果用户输入了错误的公式。例如:如果他们输入“6+2+”并且没有在最后输入数字,然后按“=”,那么应该会有一个警告,他们需要正确地完成公式。我该如何去检查这个呢?基本上我已经准备好了整个计算器,但我只是有点头脑发热,不知道该怎么做。

代码语言:javascript
复制
btnEqual.setOnAction(e ->     
        {

            txtOutput.appendText(" = ");
            txtTickerOutput.appendText(" = ");


            String number = "";

            for(int i = 0; i < numberStack.size(); i++)
            {
                number += numberStack.get(i);
            }

            number = number.replaceAll("\\s+", ""); // get rid of whitespace 

            Integer intNumber = Integer.parseInt(number);

            intStack.push(intNumber);


            int num = 0;

            for(int i = 0; i < numberStack.size(); i++)
            {

                num = intStack.get(i);


                 for(int k = 0; k <= operatorStack.size(); k++)
                {

                    // try - catch 
                    try {

                    String str = operatorStack.get(k);

                    if(str.contains("+"))
                    {
                        num += intStack.get(++i); // pre-increment operators 
                    } 


                    else if (str.contains("-"))
                    {
                        num -= intStack.get(++i);
                    } 


                    else if (str.contains("/"))
                    {
                        num /= intStack.get(++i);
                    } 


                    else if (str.contains("*"))
                    {
                        num *= intStack.get(++i);
                    }



                    } catch (Exception x)
                        {
                            x.toString();
                        }

                }
              }


              // print calculation to output 
              String calculation = String.valueOf(num);

              if (calculation.contains("=") == false)
              {
                  txtTickerOutput.appendText("Error: The formula does not contain an = sign!");
              }

              txtOutput.appendText(calculation);
              txtTickerOutput.appendText(calculation);

              // remove all elements from stacks 
              numberStack.removeAllElements();
              operatorStack.removeAllElements();
              intStack.removeAllElements();


        });
EN

回答 1

Stack Overflow用户

发布于 2020-06-05 22:25:09

根据你的计算器的功能,有多种方法可以做到这一点,但一个显而易见的方法是:

如果你有一个像3+4+这样的公式,并且你想知道它是无效的,因为它以一个操作结束,你可以这样做:

代码语言:javascript
复制
String formula = "3+4+1";
String operations = "-+/%";
if(!formula.equals("")) {
  if(operations.contains(formula.substring(formula.length()-1))) {
    System.out.println("Bad operation!");
  }
}

上面的代码只是检查公式中的最后一个字符是否为操作(因为它将在操作字符串中)。在KeyEvent上,你可以检查=,然后插入上面他们拥有的当前公式,如果这是一个糟糕的操作,那么只需取消事件并让用户知道。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62206981

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档