今天有個需求需要將一個字串型別的布林表示式轉換成算數表示式來執行,
例如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();
}
複製程式碼
這樣我們就可以輸入法一個任意的值計算字串表示式的值了。