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

标签 java string math

我正在尝试编写一个 Java 例程来评估来自 String 值的数学表达式,例如:

  1. “5+3”
  2. “10-40”
  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/3422673/

相关文章:

Javascript 数学在函数内部是不同的

javascript - 无需临时矩阵的旋转和平移 R-T 矩阵

java - 设置通知后写入功能不起作用

java - 使用 Selenium 将图片固定到板上

java - Java中加载的共享库可以调用Java方法吗?

python - 如何访问 Python 字符串中的第一个字符和整数对?

java - 在运行时修改Android应用程序

php - 我可以将一个字符串存储到 mySQL 中的单个字段中,我可以在 PHP 中回显,它也声明了变量吗?

java - 将 ByteArray 转换为 String Java

python - 计算求解 100 个变量的非线性方程组