Java 从字符串中解决数学运算

标签 java math

我有一个奇怪的任务需要用 Java 来做。 在不使用任何循环和 if 语句的情况下,我必须开发简单的计算器,它定义一个字符串中的所有操作和数字,例如:“126.7214 + 121” 我使用正则表达式来解析字符串并获取 3 个字符串变量 ['125.7214', '+' ,'121'],通常我会执行 if 语句,parseString 为整数,然后根据数学符号执行 if 语句来对这些数字求和,但是我不能。 Java 有什么技巧可以更快地做到这一点吗?一些现成的图书馆? 我将不胜感激任何建议。 :代码:

import java.math.BigDecimal;
import java.math.RoundingMode;
import java.util.regex.Matcher;
import java.util.regex.Pattern;


public class Calc {

    public String doCalc(String cmd) {

        Matcher m = Pattern.compile("\\S+").matcher(cmd);
        m.find();
        String num1= m.group(0);
        m.find();
        String znak = m.group(0);
        m.find();
        String num2 = m.group(0);





        return result;
    }
}  

最佳答案

JavaScript 解析器非常适合表达式。

import javax.script.ScriptEngineManager;
import javax.script.ScriptEngine;
public class Expression{
  public static void main(String[] args){
    ScriptEngineManager script = new ScriptEngineManager();
    ScriptEngine eng = mgr.getEngineByName("JavaScript");
    System.out.println(eng.eval("5+5*5"));
    } 
}

关于Java 从字符串中解决数学运算,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37331227/

相关文章:

Java new泛型类的实例

java - 方法 : java. lang.String.getCatalogName() 的签名不适用于参数

java - 在 Ubuntu 中设置 JAVA_HOME 环境变量

java - 导入org.apache无法解析:Eclipse

java - java堆栈跟踪中的"Unknown Source",但行号在类文件中

javascript - 欧拉项目 23,给出的结果是 64,高于应有的结果

math - ColdFusion 圆函数

javascript - 为什么某些四舍五入的 JavaScript 值以错误的方式四舍五入?

javascript - 计算多边形面积

python - 从概率分布中随机抽取一定次数的样本