ExpressionEvaluator
ExpressionEvaluator是一个Java库,用来对表达式进行求值,并且可以很容易地扩展新的运算方法、值类型等。
ExpressionEvaluator已封装了最常用的应用场景:对字符串类型的表达式进行求值。
例如: 要求 a/5 + b * (2 - c + 52.4/3) 这个表达式的值,其中a、b、c是参数,可以向它们赋值。代码如下:
// 定义表达式
String expression = "a/5 + b * (2 - c + 52.4/3)";
// 传入变量值
Map params = new TreeMap<>();
params.put("a", "6");
params.put("b", "3");
params.put("c", "49");
try{
Operand result = CommonEvaluator.value(expression, params);
System.out.println("Sample1 result: " + result.value());
}
catch (Exception e) {
e.printStackTrace();
}
求值的结果是:-87.4
除了数值运算外,逻辑运算、字符串拼接、正则表达式、变量名正则匹配等,能满足大多数自定义运算需求。
事实上除