zoukankan      html  css  js  c++  java
  • 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();
            }
    
    
        }
  • 相关阅读:
    C
    A
    枚举子集的几种方法
    Codeforces Round #476 (Div. 2) [Thanks, Telegram!] ABCDE
    wannafly挑战赛14
    2018西安电子科大同步赛
    概率dp学习记录
    xcoj 1103 插线板(树链刨分求最大子段和)
    bzoj 2286(虚树+树形dp) 虚树模板
    bzoj3012(Trie)
  • 原文地址:https://www.cnblogs.com/cocoat/p/6956610.html
Copyright © 2011-2022 走看看