EXP4J的变量参数?怎么样?

时间:2016-02-26 17:48:10

标签: java android parsing

甚至可能吗?他们的Git页面暗示如此。目前,只能在简单的上下文中声明vararg函数,但出于我的目的,我需要类似的东西:

func(1,2,3,4,5)+func(1,2)+func(1,2,3)

在这种情况下,简单地声明具有可变数量参数的本地函数不会起作用,因为表达式求值程序只能有一个定义。

我还想避免为每个n参数创建函数的愚蠢解决方案......

1 个答案:

答案 0 :(得分:0)

这样的事情? 它也必须将公式发送到func

String formula=  "a * sin(b) - 35 / (c - 2)"; //3 var
String formula2= "a * sin(b) - d / (c - 2)";  //4 var

String[] ve = new String[3];
ve[0] = "a";
ve[1] = "b";
ve[2] = "c";

Map<String, Double> vars = new HashMap<>(); 

vars.put("a", 1.5);
vars.put("b", 2.0);
vars.put("c", 3.2);

//----------------------Here func(string ....

Expression e = new ExpressionBuilder(formula)
.variables(ve)
.build()
.setVariables(vars);

double result = e.evaluate();