我有一个String形式的数学表达式。
String exp = "3 + 6 - 10 + 12 + 15";
现在如何像处理其他数学表达式一样计算这个表达式的结果。
帮我。
答案 0 :(得分:3)
假设可能只有+
和-
个操作,您可以删除所有空格并将其拆分为正整数和负整数并将它们相加。
String expr = "3 + 6 - 10 + 12 + 15";
String[] nums = expr.replaceAll("\\s", "").split("\\+|(?=-)");
int result = Arrays.stream(nums).mapToInt(Integer::parseInt).sum();
如果表达式可能更复杂,包括更多运算符或括号,则必须使用其他解决方案。
答案 1 :(得分:0)
你可以使用BeanShell bsh.Interpreter:
Interpreter interpreter = new Interpreter();
interpreter.eval("result = 5+4*(7-15)");
System.out.println(interpreter.get("result"));
它将评估复杂的数学表达式。
答案 2 :(得分:-1)
通过JDK 1.6或更高版本。
ScriptEngineManager mgr = new ScriptEngineManager();
ScriptEngine engine = mgr.getEngineByName("JavaScript");
String expression = "3+6-10+12+15";
try {
System.out.println(engine.eval(expression));
} catch (ScriptException ex) {
System.out.println("Error occured.");
}