字符串转运算表达式
public class runString {
public static void main(String[] args) {
ScriptEngine jse = new ScriptEngineManager().getEngineByName("JavaScript");
String strs = "1+2*3/(4-2)";
try {
System.out.println(jse.eval(strs));
} catch (Exception t) {
}
}
}
注意:如果公式中存在变量作为运算的元素的话,可以使用replaceAll()方法将相应的变量替换成实际的数值。如果是多个变量可以利用循环遍历的方式来解决。
例子:jse.eval(“1+b”.replaceAll(“b”, b.toString()));
字符串转条件表达式
String str = "value>8 || (value <= 5 && value > 1)";
ScriptEngineManager manager = new ScriptEngineManager();
ScriptEngine engine = manager.getEngineByName("js");
engine.put("value", 10);
Object result = engine.eval(str);
System.out.println("计算结果:" + result);