最近遇到一个需求,将形如:
String str = "value>8 || (value <= 5 && value > 1)";
这种字符串算术表达式进行true或false的判断,通过 ScriptEngineManager 类成功解决这个问题。
方法:
String str = "value>8 || (value <= 5 && value > 1)";
ScriptEngineManager manager = new ScriptEngineManager();
ScriptEngine engine = manager.getEngineByName("js");
engine.put("value", 10);
Object result = engine.eval(str);
System.out.println("计算结果:" + result);
结果: