Java 字符串转成运算公式 有更新!

  |   0 评论   |   1,583 浏览

        public static void main(String args[]) {
    
            Binding binding = new Binding();
    
            binding.setVariable("F",2.5);
            binding.setVariable("T",30);
            binding.setVariable("A",100);
            binding.setVariable("P0",100);
    
            binding.setVariable("language", "Groovy");
    
            GroovyShell shell = new GroovyShell(binding);
    
            Object F1 =shell.evaluate("P1=(1+0.1 * (F/100) * T)*P0; return P1 ");
    
            Object F2 =shell.evaluate("P1=P0*(0.055*0.20+1.0011)+A; return P1 ");
    
            System.out.println(F1);
            System.out.println(F2);
    
        }
    
    <dependency>
                <groupId>org.codehaus.groovygroupId>
                <artifactId>groovy-allartifactId>
                <version>2.4.7version>
    dependency>
    
    public static void main(String args[]) {
    
            ScriptEngine engine = new ScriptEngineManager().getEngineByName("javascript");
            Compilable compilable = (Compilable) engine;
            Bindings bindings = engine.createBindings(); //Local级别的Binding
            String script = "(1+0.1 * (F/100) * T)*P0"; //定义函数并调用
            CompiledScript JSFunction = null; //解析编译脚本函数
            try {
                JSFunction = compilable.compile(script);
                bindings.put("F", 2.5);
                bindings.put("T", 30);
                bindings.put("A", 100);
                bindings.put("P0", 100);
                Object result = JSFunction.eval(bindings);
                System.out.println(result); //调用缓存着的脚本函数对象,Bindings作为参数容器传入
            } catch (ScriptException e) {
                e.printStackTrace();
            }
    
    
        }
    
    

    评论

    发表评论

    validate