第一种方式:springframework框架
import org.springframework.expression.Expression;
import org.springframework.expression.spel.standard.SpelExpressionParser;
/**
* 字符串的数值计算
*/
public class Interpreter {
public static void main(String[] args) {
SpelExpressionParser parser = new SpelExpressionParser();
Expression expression = parser.parseExpression("( 10 + (2 + 1) * 2 )/ 3");
Object value = expression.getValue();
System.out.println(value);
}
}
第二种方式:JDK自带
import javax.script.ScriptEngine;
import javax.script.ScriptEngineManager;
public class Interpreter {
public static void main(String[] args) {
ScriptEngine jse = new ScriptEngineManager().getEngineByName("JavaScript");
String strs = "1+1*2+(10-(2*(5-3)*(2-1))-4)+10/(5-0)";
try {
System.out.println(jse.eval(strs));
} catch (Exception t) {
}
}
}