解析 java 中的某些用户定义的布尔表达式字符串

Parse the Some User Define boolean Expression String in java

like 1. true AND true

like 2. true AND true OR (true AND false)

like 3. NOT true

所以,我们如何更容易地解析上面的示例表达式,或者任何 java api 字符串解析器

您可以使用 MVEL API。 MVEL 是一种混合 dynamic/statically 类型、可嵌入的表达式语言和 Java 平台的运行时。它是开源的。

如果我们使用 Spring 然后使用下面的 SpelExpressionParser 解析它,动态的并且还允许 && 和 AND 操作

ExpressionParser parser = new SpelExpressionParser();
boolean falseValue = parser.parseExpression("true && ( false || ( false && true ) )").getValue(Boolean.class);
System.out.println(falseValue);
falseValue = parser.parseExpression("true AND ( false OR ( false AND true ) )").getValue(Boolean.class);
System.out.println(falseValue);