在java中解析某个用户定义的布尔表达式字符串
像1。千真万确 就像2。真与真或(真与假) 像3。不正确在java中解析某个用户定义的布尔表达式字符串,java,string,parsing,Java,String,Parsing,像1。千真万确 就像2。真与真或(真与假) 像3。不正确 所以,我们如何更容易地解析上面的示例表达式,或者任何用于字符串解析器的JavaAPI,您都可以使用MVELAPI。MVEL是一种用于Java平台的混合动态/静态类型、可嵌入表达式语言和运行时。它是一个开源软件。如果我们使用的是Spring,那么使用下面的SpelExpressionParser来解析它,动态的,并且还允许&&and操作 ExpressionParser parser = new SpelExpressionParser()
所以,我们如何更容易地解析上面的示例表达式,或者任何用于字符串解析器的JavaAPI,您都可以使用MVELAPI。MVEL是一种用于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);
只需要解析,比如1。像2一样真实。真与真或(真与假)如3。事实并非如此。您想用“代码> >真< /代码>,代码>虚伪<代码>等替换1和2。您能告诉我们确切的输入和预期的输出吗?您好@ Jens和所有成员,为什么这个主题被认为是一个离题,我已经得到了答案,并且从Spring表达式中找到,请看一看。