我创建了以下hashmap:
HashMap<String, String> toleranceValues = new HashMap<String, String>();
包含变量名称及其各自的值,例如:
"ANGLE"="3.0"
鉴于这个hashmap,我需要使用它中的变量来解析常规String中包含的数学公式,例如:
String formula = " ANGLE*PI/2";
问题不涉及数学解析,因为我已经使用JEval找到了解决方案。我只需要一种方法来获取存储在地图中的变量值,并显示在公式中。
答案 0 :(得分:2)
查看unit tests for JEval您在公式中定义格式为#{[variable name]}
的变量。此信息也位于Evaluator的JavaDocs中。
鉴于变量名称的这一要求,要使上述公式起作用,代码将如下所示:
Map variables = new HashMap();
variables.put("ANGLE", "3.0");
variables.put("PI", "3.14");
Evaluator evaluator = new Evaluator();
evaluator.setVariables(variables);
String result = evaluator.evaluate("#{ANGLE} * #{PI} / 2"));
答案 1 :(得分:0)
可以将公式视为FreeMarker模板,该模板将使用地图中的值进行填充。