java - 如何计算以字符串形式给出的数学表达式?

标签 java string math

我正在尝试编写Java例程,以从String值评估简单的数学表达式,例如:


"5+3"
"10-40"
"10*3"


我想避免很多if-then-else语句。
我怎样才能做到这一点?

最佳答案

使用JDK1.6,您可以使用内置的Javascript引擎。

import javax.script.ScriptEngineManager;
import javax.script.ScriptEngine;
import javax.script.ScriptException;

public class Test {
  public static void main(String[] args) throws ScriptException {
    ScriptEngineManager mgr = new ScriptEngineManager();
    ScriptEngine engine = mgr.getEngineByName("JavaScript");
    String foo = "40+2";
    System.out.println(engine.eval(foo));
    } 
}

关于java - 如何计算以字符串形式给出的数学表达式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58487243/

相关文章:

java - 在 CQ5 中搜索多个标签

Ruby 字符串可变性

c++ - 如何计算插值三角曲面的主曲率?

java - 尝试使用 String.split ("\\?"时出现意外行为)

math - 粗略计算两点之间的距离

c++ - 什么是支持 vector 数学和复数的良好开源 C/C++ 数学库?

java - 类文件名中的 $1 是什么?

java - 是什么造成了这种差异 通过在左侧添加额外的零

java - Spring:在 Junit 中加载的类中 Autowiring 不同的类

ios - 当存在表情符号时,使用 NSRegularExpression 会产生不正确的范围