• Java 字符串转成运算公式


    GroovyShell 实现
    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.groovy</groupId>
                <artifactId>groovy-all</artifactId>
                <version>2.4.7</version>
    </dependency>

    ScriptEngine实现
    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();
            }
    
    
        }
  • 相关阅读:
    Java基础教程——抽象类
    Java基础教程——接口
    Java基础教程——多态
    Java基础教程——继承
    Java基础教程——封装
    Java基础教程——类和对象
    Java基础教程——二维数组
    原码,反码,补码
    java学习之动手实验
    java学习之动手实验
  • 原文地址:https://www.cnblogs.com/cocoat/p/6956610.html
Copyright © 2020-2023  润新知