当前位置:   article > 正文

布尔类型字符串解析成布尔值_spark 布尔字符串转布尔

spark 布尔字符串转布尔

有时候页面输入一段布尔字符串表达式,需要得到布尔结果进行判断,如果直接硬编码显得有些冗余,我们可以利用commons-jexl工具,将字符串转化为可执行的java代码,直接运行处结果,非常的完美。

commons-jexl包可以将字符串转化为可执行的java代码,支持各种表达式运算,包括且、或、异或、取反以及加减乘除等各种运算,且支持动态加载类与方法,功能强大。 

maven引入包
<!-- https://mvnrepository.com/artifact/org.apache.commons/commons-jexl3 -->
<dependency>
    <groupId>org.apache.commons</groupId>
    <artifactId>commons-jexl3</artifactId>
    <version>3.1</version>
</dependency>

示例代码
package com.zhaiky;
import org.apache.commons.jexl3.JexlBuilder;
import org.apache.commons.jexl3.JexlEngine;
import org.apache.commons.jexl3.JexlExpression;
import org.apache.commons.jexl3.MapContext;
/**
 * @author zhaikaiyun
 * @date 2020/3/27 18:12
 * @description
 */
public class Test {
    /**
     * 布尔表达式判断
     * @param booleanExpress
     * @return
     */
    public static boolean RuleJudgeResult(String booleanExpress){
        JexlBuilder jexlBuilder = new JexlBuilder();
        JexlEngine jexl = jexlBuilder.create();
        JexlExpression jexlExpression = jexl.createExpression(booleanExpress);
        MapContext jexlContext = new MapContext();
        boolean result = (boolean) jexlExpression.evaluate(jexlContext);
        return result;
    }
    public static void main(String[] args) {
        String booleanExpress="(1==2||1==1) && (2>0)";
        System.out.println(Test.RuleJudgeResult(booleanExpress));
    }
}
 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/笔触狂放9/article/detail/278067
推荐阅读
相关标签
  

闽ICP备14008679号