JAVA计算表达式

JAVA计算数字表达式的值:

  • 利用JS来计算:
try {
      String s = "900000/(-(-200000-1000000-1000000))" ;//2200000
      ScriptEngine jse = new ScriptEngineManager().getEngineByName("JavaScript" );
      System. out.println(jse.eval(s).toString());
} catch (ScriptException e) {
      throw new IllegalArgumentException("计算错误",e);
}
  • 利用栈来计算 参考 栈计算表达式:
    1. 将所有的数字放入List中(优先级别最高的放在最后),然后将运算符放入栈中(便于剔除左右括号),运算符级别最高的放在首位(最后直接拼接进List,优先级高的先运算)。将栈剔除左右括号,拼接进List。
    2. 在计算时,将数值全部放进一个新栈,遍历剩下的list(全是运算符),此时每次计算完都要把计算结果push()放进栈尾。便于pop()直接取出来。

你可能感兴趣的:(JAVA计算表达式)