public static void main(String[] args) {
// 统计时,会传递日期和数据板块id,数据板块id的用处就是获取计算公式
// 假如这就是我们获取到的某一个数据板块的公式
String str = "avg(item_code_f,item_code_b) +item_code_a ÷ item_code_k - 100";
// 处理一下÷和×,毕竟是以*和/作为乘法除法符号的
str = str.replace("÷","/");
str = str.replace("×","*");
// 定义一个正则表达式,过滤掉计算符号
String regex = "[()*+/-]";
Pattern p = Pattern.compile(regex);
Matcher m = p.matcher(str);
List<String> list = new ArrayList<>();
// 这里注意要先转成Set然后再转成List,因为有可能计算的时候要使用一个数据项的值多次,但是其实都是同一
QLExpress-阿里规则引擎
于 2022-07-21 10:56:19 首次发布
本文介绍阿里巴巴开源的QLExpress动态语言在Java平台上的高效应用,探讨如何通过正则表达式处理计算公式,提取数据项,并演示了如何自定义函数实现复杂计算。

最低0.47元/天 解锁文章
11万+

被折叠的 条评论
为什么被折叠?



