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

标签 java string math

我正在尝试编写一个 Java 例程来根据 String 值计算数学表达式,例如:

  1. “5+3”
  2. “10-4*5”
  3. “(1+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/16698710/

相关文章:

java - SL4J 时间戳

java - Android loopj Async Http 在 1.4.5 更新后崩溃

java - 在JAVA中将二叉搜索树转换为链表

java - Javadoc 报告生成中发生错误 - 未知标签

java - 更方便的方法来找到 2+ 数字的最大值?

javascript - 在javascript中使用变量的值作为变量

Java Map 读取文件存储在 Map 中的第一个字母作为单词的键和值

c# - 无法识别 Guid 格式

c++ - 计算具有相同结果的给定对幂的不同项

Java代码从四元数获取绕轴的旋转角度