IK Expression是一個開源的(OpenSource),可擴展的(Extensible),基於java語言開發的一個超輕量級(Super lightweight)的公式化語言解析執行工具包。
源碼地址:https://github.com/deonwu/ik-expression
參考文檔:鏈接:https://pan.baidu.com/s/1lxY3qGUqAiwsFJpEHWQQ9Q 提取碼:1234
//支持運算: //基礎運算符: + - * / //邏輯運算符: ! && || //三元運算符:? //括號優先級等
使用方法演示:
演示1:
public static void main(String[] args) { String expression1 = "true || false"; String expression2 = "!true || false"; String expression3 = "true && false"; String expression4 = "true && (false || true)"; System.out.println(ExpressionEvaluator.evaluate(expression1));//true System.out.println(ExpressionEvaluator.evaluate(expression2));//false System.out.println(ExpressionEvaluator.evaluate(expression3));//false System.out.println(ExpressionEvaluator.evaluate(expression4));//true }
演示2:
public static void main(String[] args) { String expression1 = "(1>2) || false"; String expression2 = "(1-2) > 0"; String expression3 = "1*2 == 2"; String expression4 = "1*2 != 2"; System.out.println(ExpressionEvaluator.evaluate(expression1));//false System.out.println(ExpressionEvaluator.evaluate(expression2));//false System.out.println(ExpressionEvaluator.evaluate(expression3));//true System.out.println(ExpressionEvaluator.evaluate(expression4));//false }
演示3:
public static void main(String[] args) { Boolean a = true; Boolean b = true; Boolean c = false; String expression = "a || (b && c)"; //給表達式中的變量賦上下文的值 List<Variable> variables = new ArrayList<Variable>(); variables.add(Variable.createVariable("a", a)); variables.add(Variable.createVariable("b", b)); variables.add(Variable.createVariable("c", c)); //執行表達式 Object result = ExpressionEvaluator.evaluate(expression, variables);//true }
持續更新!!!