Java是否具有能够使用BODMAS评估顺序评估任意算术表达式的库或功能

时间:2013-01-05 08:46:15

标签: java

我们可以在Java中使用BODMAS规则制作计算器程序:

String valfromtextbox = "2(2*2)+5";

long total = Long.parseLong(valfromtextbox);

我们可以做上面的事情,或者我们必须制定完整的逻辑来做到这一点。

如果我们必须制作完整的逻辑,那么请给我提示。

1 个答案:

答案 0 :(得分:2)

可以使用Java Expression Language (JEXL)

    // Create or retrieve a JexlEngine
    JexlEngine jexl = new JexlEngine();
    // Create an expression object
    String valfromtextbox = "2(2*2)+5";
    Expression e = jexl.createExpression( valfromtextbox );

    // Create a context and add data
    JexlContext jc = new MapContext();

    // Now evaluate the expression, getting the result
    Object o = e.evaluate(jc);