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

问题:

我正在尝试编写一个Java例程来评估来自String值的简单数学表达式,如:

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

我想避免很多if-then-else语句。
我该怎么做?

回答:

使用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));
    } 
}

 
 
Code问答: http://codewenda.com/topics/python/
Stackoverflow: Evaluating a math expression given in string form

*转载请注明本文链接以及stackoverflow的英文链接

发表评论

电子邮件地址不会被公开。 必填项已用*标注

86 + = 93