本帖最后由 leeleoloo 于 2014-04-15 13:46:06 编辑

解决方案 »

  1.   

    String formula = "x=a*b"; String x = "Result amount";
    String a = "input";
    String b = "precent";
    System.out.println(formula.replace("x", x).replace("=a","="+a).replace("*b","*"+b));

     ScriptEngineManager factory = new ScriptEngineManager();  
         ScriptEngine engine = factory.getEngineByName("JavaScript");  
         String script=" function hello(){";
         script+=" var x='Result amount';";
         script+=" var a='input';";
         script+=" var b='precent'; ";
         script+=" return (x+'='+a+'*'+b);";
         script+=" }";
         engine.eval(script);  
         Invocable inv = (Invocable) engine;  
         Object obj = inv.invokeFunction("hello");  
         System.out.println(obj); 
      

  2.   

    String formula = "x=a*b ";
    formula = formula.replace("x", "Result amount");
    formula = formula.replace("a*", "input ");
    formula = formula.replace("b", "precent");
    把第二个替换改成这样就行了撒,或者就用正则表达式