Java是否有能够使用BODMAS求值顺序计算任意算术表达式的库或功能

Java是否有能够使用BODMAS求值顺序计算任意算术表达式的库或功能,java,Java,在Java中,我们可以使用如下规则制作计算器程序: String valfromtextbox = "2(2*2)+5"; long total = Long.parseLong(valfromtextbox); 我们可以做如上所述的事情,或者我们必须制定完整的逻辑来做到这一点 如果我们必须做出完整的逻辑,请给我提示。您可以使用: 您需要查找:递归下降解析;调车场算法;Java脚本引擎;或者使用诸如JavaCC之类的解析器生成器 // Create or retrieve a Jex

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

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

long total = Long.parseLong(valfromtextbox);
我们可以做如上所述的事情,或者我们必须制定完整的逻辑来做到这一点

如果我们必须做出完整的逻辑,请给我提示。

您可以使用:


您需要查找:递归下降解析;调车场算法;Java脚本引擎;或者使用诸如JavaCC之类的解析器生成器
    // 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);