天翎MyApps技术社区 - 低代码平台 | 流程管理系统 | BPM软件

 找回密码
 注册成为天翎用户
查看: 729|回复: 4

如何实现计算字符串表达式的值

[复制链接]
ciq_ln 发表于 2019-3-26 10:01:49 | 显示全部楼层 |阅读模式
想在脚本里实现计算字符串表达式的值,类似以下函数的效果。如何能实现?

import javax.script.ScriptEngine;
import javax.script.ScriptEngineManager;
import javax.script.ScriptException;

public class ExpressionCalculate {
    public static void main(String[] args) {
        ScriptEngineManager scriptEngineManager = new ScriptEngineManager();
        ScriptEngine scriptEngine = scriptEngineManager.getEngineByName("nashorn");
        String expression = "10 * 2 + 6 / (3 - 1)";

        try {
            String result = String.valueOf(scriptEngine.eval(expression));
            System.out.println(result);
        } catch (ScriptException e) {
            e.printStackTrace();
        }
    }
}

结果: 23
---------------------
【myApps/OBPM版本号】:V1.6.0_sp12_31661
【浏览器类型】:Chrome
【联系方式-QQ】:481168
【联系方式-电话】:13842816067
wrjian 发表于 2019-3-26 10:36:48 来自手机 | 显示全部楼层
定义一个数字函数,== 赋值,行吗?
来自: 微社区
 楼主| ciq_ln 发表于 2019-3-26 11:30:46 | 显示全部楼层
肯定不行的。字符串是动态的,再说==是逻辑运算符不是赋值符号
Jilong 发表于 2019-3-26 17:59:14 | 显示全部楼层
ScriptEngineManager()方法是jdk1.8上添加特性,目前系统使用的1.7的jdk没有这个属性方法,没有办法使用
,如果自己改为jdk1.8的话自己封装方法去使用
 楼主| ciq_ln 发表于 2019-3-27 12:35:37 | 显示全部楼层
改用数据库动态查询语句实现了

本版积分规则

QQ|手机版|天翎MyApps技术社区 ( 粤ICP备11093750号 )

GMT+8, 2026-8-12 15:06

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表