下面Java代码 怎么根据公式formula,代入变量计算公式的数值 Integer var1 = 1; Integer var2 = 2; String formula = "(var1 + var2) * 3";
在Java中,你可以使用Java的脚本引擎(如JavaScript引擎)来动态计算公式的值。以下是一个示例代码,展示了如何使用ScriptEngine
来计算公式的值:
import javax.script.ScriptEngine;
import javax.script.ScriptEngineManager;
import javax.script.ScriptException;
public class FormulaEvaluator {
public static void main(String[] args) {
Integer var1 = 1;
Integer var2 = 2;
String formula = "(var1 + var2) * 3";
// 创建一个ScriptEngineManager
ScriptEngineManager manager = new ScriptEngineManager();
// 获取JavaScript引擎
ScriptEngine engine = manager.getEngineByName("JavaScript");
// 将变量绑定到引擎上下文中
engine.put("var1", var1);
engine.put("var2", var2);
try {
// 评估公式
Object result = engine.eval(formula);
System.out.println("Result: " + result);
} catch (ScriptException e) {
e.printStackTrace();
}
}
}
在这个示例中,我们使用了ScriptEngineManager
来获取一个JavaScript引擎,并将变量var1
和var2
绑定到引擎的上下文中。然后,我们使用engine.eval(formula)
来评估公式,并输出结果。
请注意,这种方法使用了Java内置的JavaScript引擎(Nashorn),它在Java 8及更高版本中可用,但在Java 15及更高版本中已被移除。如果你使用的是Java 15或更高版本,你可能需要使用其他脚本引擎或库来实现类似的功能。