我使用杰普 ()作为需求。当有以下格式的表达式并将变量替换为数值时,一切都会顺利进行。
例如:
String formula = "(A || B )" ;
JEP jep = new JEP();
jep.addVariable("A", -1.0);
jep.addVariable("B", 0.0);
jep.parseExpression(formula);
Number value = jep.getValue();
System.out.println("Value: " +value);
-----------------------------
Value : 0.0但是,当A和B的值是布尔值时(如(真或假))会怎样呢?有人能建议JEP如何支持布尔输入场景吗?
String formula = "(A || B )" ;
JEP jep = new JEP();
jep.addVariableAsObject("A", Boolean.TRUE);
jep.addVariableAsObject("B", Boolean.TRUE);
jep.parseExpression(formula);
Object val = jep.getValueAsObject();
System.out.println("Value: " +val); // gives null发布于 2022-11-07 12:37:59
注释是错误的,Java支持布尔值:http://www.singularsys.com/jep/doc/html/operators.html
我搞不懂你在哪里找到的函数addVariableAsObject,getValueAsObject?在文档中它们并不存在。
这样做很好:
String formula = "(A || B )" ;
Jep jep = new Jep();
try {
jep.addVariable("A", Boolean.TRUE);
jep.addVariable("B", Boolean.TRUE);
jep.parse(formula);
Object result = jep.evaluate();
System.out.println("result = " + result);
} catch (JepException e) {
System.out.println("An error occurred: " + e.getMessage());
} https://stackoverflow.com/questions/71378457
复制相似问题