我有一个奇怪的任务需要用 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/