Java/javaScript将字符串转变成可执行的语句

java

  • 以下语句如何执行?
 int money = 2500;
 String str = "money>=2000&&money<=4000" ;
 System.out.println(str);
  • 解决办法:

    org.apache.commons
    commons-jexl
    2.0

  /**
    * @Description: 将字符串转换成可执行代码
    * @params: [jexlExp, map]
    * @return: java.lang.Object
    * @Author: wangxianlin
    * @Date: 2020/11/4 4:32 PM
    */ 
    public static Object convertToCode(String jexlExp,Map map){
        JexlEngine jexl=new JexlEngine();
        Expression e = jexl.createExpression(jexlExp);
        JexlContext jc = new MapContext();
        for(String key:map.keySet()){
            jc.set(key, map.get(key));
        }
        if(null==e.evaluate(jc)){
            return "";
        }
        return e.evaluate(jc);
    }

    public static void main(String[] args) {
        try {
            Map map=new HashMap();
            map.put("money",2100);
            String expression="money>=2000&&money<=4000";
            Object code = convertToCode(expression,map);
            System.out.println(code);
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }
  • 运行结果


    image.png

javaScript

var x = 2500;
var str = "x>=2000&&x<=4000" ;
console.log(str);
  • eval()
    函数可计算某个字符串,并执行其中的的 JavaScript 代码。
  • 运行结果


    Java/javaScript将字符串转变成可执行的语句_第1张图片
    eval.png

你可能感兴趣的:(Java/javaScript将字符串转变成可执行的语句)