我正在使用移动应用计算器
我正在尝试使用“bsh”库将字符串作为数学方程式进行评估。
成功地,我导入了库并进行了编译。

当我尝试以等号实现此部分时,我一直都为null

equSign.setOnClickListener(new View.OnClickListener() {
          @Override
          public void onClick(View v) {
              String value = "";
              Double result= null;
                  Interpreter interpreter = new Interpreter();
              try {
                     result = (Double)interpreter.eval(input);
                  } catch (EvalError evalError) {
                      evalError.printStackTrace();
                  }
              value = String.valueOf(result);
              text.setText(value);
          }
      });

每次用户输入0到9的数字或。或任何操作+/-
它将被添加到输入变量
  Num0.setOnClickListener(new View.OnClickListener() {
      @Override
      public void onClick(View v) {
          text.setText(text.getText()+"0");
          input = input + "0";
      }
  });

所有其他按钮的此功能

我也使用try catch来捕获错误

最佳答案

您的问题似乎是您正在混合Java类和“bsh”解释器的变量。基本上,bsh无法直接访问Java变量,因此您需要在解释器中进行设置。
i.eval(input)可能就是您要执行的操作。

查看http://www.beanshell.org/javadoc/bsh/Interpreter.html中的示例,以了解如何使用其他一些功能。

08-04 14:54