java数学表达式计算(expression evaluator),Java数学表达式计算(Expression Evaluator)

Java

Java数学表达式计算(Expression Evaluator)

常见的表达式计算lib有:parsiiJEvalJEPLiteexprJaninoMathEval(1)parsii

Java代码String exp = "2 + (7-5) * 3.14159 * x + sin(0)";

// compile Scope scope = Scope.create(); Expression parsiiExpr = Parser.parse(exp); Variable var =

scope.getVariable("x"); var.setValue(X_V ALUE); // evaluate double result = parsiiExpr.evaluate();

System.out.println(result);//-> 2.0 (2)JEval

Java代码String exp = "2 + (7-5) * 3.14159 * #{x} + sin(0)"; // compile Evaluator jevalEvaluator = new Evaluator(); jevalEvaluator.setVariables(Collections.singletonMap("x", Double.toString(X_V ALUE))); // evaluate double result = Double.parseDouble(jevalEvaluator.evaluate(exp)); System.out.println(result);//-> 2.0 (3)JEPLite

Java代码String exp = "2 + (7-5) * 3.14159 * x + sin(0)";

// compile JEP jep = new JEP(); jep.addVariable("x",

X_V ALUE); jep.parseExpression(exp); DoubleStack jepStack = new DoubleStack(); // evaluate double result = jep.getValue(jepStack); System.out.println(result);//->

2.0