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