小编典典

如何评估以字符串形式给出的数学表达式?

all

我正在尝试编写一个 Java 例程来评估以下值的数学表达式String

  1. "5+3"
  2. "10-40"
  3. "(1+10)*3"

我想避免很多 if-then-else 语句。我怎样才能做到这一点?


阅读 113

收藏
2022-03-28

共1个答案

小编典典

使用JDK1.6,可以使用内置的Javascript引擎。

import javax.script.ScriptEngineManager;
import javax.script.ScriptEngine;
import javax.script.ScriptException;

public class Test {
  public static void main(String[] args) throws ScriptException {
    ScriptEngineManager mgr = new ScriptEngineManager();
    ScriptEngine engine = mgr.getEngineByName("JavaScript");
    String foo = "40+2";
    System.out.println(engine.eval(foo));
    } 
}
2022-03-28