Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/joomla/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在java中解析某个用户定义的布尔表达式字符串_Java_String_Parsing - Fatal编程技术网

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

在java中解析某个用户定义的布尔表达式字符串,java,string,parsing,Java,String,Parsing,像1。千真万确 就像2。真与真或(真与假) 像3。不正确 所以,我们如何更容易地解析上面的示例表达式,或者任何用于字符串解析器的JavaAPI,您都可以使用MVELAPI。MVEL是一种用于Java平台的混合动态/静态类型、可嵌入表达式语言和运行时。它是一个开源软件。如果我们使用的是Spring,那么使用下面的SpelExpressionParser来解析它,动态的,并且还允许&&and操作 ExpressionParser parser = new SpelExpressionParser()

像1。千真万确

就像2。真与真或(真与假)

像3。不正确


所以,我们如何更容易地解析上面的示例表达式,或者任何用于字符串解析器的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表达式中找到,请看一看。