直接附上代码,可以将输入的表达式参数的替换成自己变量的值
import javax.script.ScriptEngine; import javax.script.ScriptEngineManager; import javax.script.ScriptException; public class Main { public static void compres() throws ScriptException { int a=1,b=2,c=3,d=4,e=5; String model="a+(b+c)/(d*e)"; model=model.replace("a",String.valueOf(a)); model=model.replace("b",String.valueOf(b)); model=model.replace("c",String.valueOf(c)); model=model.replace("d",String.valueOf(d)); model=model.replace("e",String.valueOf(e)); System.out.println(model); ScriptEngineManager manager = new ScriptEngineManager(); ScriptEngine engine = manager.getEngineByName("js"); Object result = engine.eval(model); System.out.println("结果类型:" + result.getClass().getName() + ",计算结果:" + result); } public static void main(String[] args) throws ScriptException { compres(); } }