java把字符串表达式转成有意义的运算

有些时候会把字符串的运算表达式进行运算处理,这时候就需要转换成有意义的运算符

  • 例如:前台接收"(1+2)*3"或者"(true&false)|true"
  • 思路:大家应该记得JavaScript中有一个eval的方法,如果用js的方式可以处理

    java对于js有一个实现类叫做ScriptEngine

  • 代码:
    	String ss = "(true&false)|(false|true)";
        ScriptEngine se = new ScriptEngineManager().getEngineByName("JavaScript");
        try {
            Object eval = se.eval(ss);
            //如果是boolean会返回0/1,用obj接收判断就可以了,数值类型可以强转
            System.out.println(eval);
        } catch (ScriptException e) {
            e.printStackTrace();
        }
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值