我将此作为服务器响应:
"[(sin(1+3*4)+2)/7]+10"
此响应意味着 1、3、4、2、7 和 10 是 DB(mysql)上的某种索引项,我需要对其进行多次评估。我在 java 中寻找一个好的库,我发现 exp4j、expr、jep 和 jeval 就像数学表达式解析器一样,但我看不到在哪里获取这些“索引”的选项,因为服务器只给了我那个字符串但是不要给我需要在我的数据库中查阅的“索引项”。请帮忙 :(
额外:1、3、4、2、7 和 10 是变量,我需要获取它(不总是数字),因为这些变量名称是我在数据库中的索引。当我得到名称时,我创建一个 sql 查询来获取该变量的实际值。
就像这样...
ParseMath function = new ParseMath("[(sin(1+3*4)+2)/7]+10");
String[] variables = function.getVariables();
System.out.println(values) = 1, 3, 4, 2, 7, 10
然后...
String[] realValues = SqlQuery(variables);
for(int i=0; i<variables.lenght(); i++){
function.setValue(variable[i],realValue[i]);
}
double result = function.exec();
PS:我写的函数和方法不存在,我只是把它当作我的问题的上下文......