首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >带占位符的JEP解析

带占位符的JEP解析
EN

Stack Overflow用户
提问于 2021-11-11 08:44:28
回答 1查看 30关注 0票数 0

我需要使用JEP库来解析java中的一些表达式。我遇到了占位符的问题。

调用数据库后,返回一个需要转换的值,例如:如果返回值= 50,则需要转换为新的值={{/10}}值(格式与数据库中的格式一致)

为此,我尝试了复制一些场景:

代码语言:javascript
复制
 public static void main(String[] args) {
    JEP j = new JEP();    
    try {
     j.addVariable("x", 9);
     j.parseExpression("x/5");
     
     Object a=j.getValueAsObject();
     System.out.println(a);
    }catch (Exception e) {
      e.printStackTrace();
    }
代码语言:javascript
复制
The answer is 1.8 (Expected)

现在,为了复制真实场景,如果我执行以下操作,代码将失败

代码语言:javascript
复制
 public static void main(String[] args) {
try {

    JEP j = new JEP();  
     j.addVariable("{x}", 9);
     j.parseExpression("{x}/5");
     
     Object a=j.getValueAsObject();
     System.out.println(a);
    }catch (Exception e) {
      e.printStackTrace();
    }
}

我希望这里是1.8,但它返回的是null。有没有人能在这里提供一些建议或建议?

EN

回答 1

Stack Overflow用户

发布于 2021-11-11 09:14:15

似乎不支持{},但是支持()。因此,我建议您对{}进行字符串操作,并在可能的情况下替换为()

下面是一个示例:

代码语言:javascript
复制
JEP jepExpression = new JEP();
jepExpression.setAllowUndeclared(true);
jepExpression.addStandardConstants();
jepExpression.addStandardFunctions();

jepExpression.parseExpression("(a + 1) * (b - 3)");
jepExpression.addVariable("a", 1);
jepExpression.addVariable("b", 2);

System.out.println("Value: " + jepExpression.getValueAsObject());

Value: -2.0
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69925399

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档