首页 > 技术文章 > JAVA 字符串改成表达式

dddchongya 2020-03-18 16:18 原文

直接附上代码,可以将输入的表达式参数的替换成自己变量的值

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();
            
    }

}

 

推荐阅读