今天有个需求需要将一个字符串类型的布尔表达式转换成算数表达式来执行, 例如condition =“v<630”,要求是输入一个任意的数字,在获取结果,在java 中没有直接的方式可以来执行,发现使用js可以实现,就是用一个js引擎Rhino,代码如下
condition = “v < 630 ”;
RhinoScriptEngine js = new RhinoScriptEngine(true);
boolean isTrue;
Compilable compiler = js;
try {
CompiledScript script = compiler.compile("js");
ScriptEngine sss = script.getEngine();
sss.put("v", 3);
isTrue = (boolean) sss.eval(condition);
} catch (Exception e) {
e.printStackTrace();
}
这样我们就可以输入法一个任意的值计算字符串表达式的值了。