java中怎么将字符串(带运算符号加减乘除)转换成代数算式运算

2025-04-15 10:24:10
推荐回答(4个)
回答1:

这需要写很长一段代码。
1、判断表达式中有没有括号,如果有括号,转第二步。没有括号转第三步。
2、把括号内的内容提取出来,作为一个新的表达式。转第三步
3、判断表达式中有没有乘号和除号,有转第四步。没有转第六步。
4、把乘除号和乘除号前后的数字提取出来,得到新的表达式,转第五步。
5、提取数字和符号,判断表达式是乘号还是除号,然后计算结果。返回。
6、表达式没有乘除号,有加减号。转第七步。
7、提取包含加减的表达式中的符号和数据,计算结果,返回。

就是这个道理,这里只是描述了带括号和加减乘除的表达式,如果有更多的运算符,则根据运算符优先级处理。

回答2:

如果你只是想要结果的话可以利用数据库来进行计算

进行计算之前,运算符要记得替换,例如x换成*,同理可校验字符串是否是合法运算式

回答3:

java是无法直接解决,不要试图在这方面想了,但是javaScript中有一个eval函数是可以执行的,所以,可以通过其他途径执行javaScript就可以做到,而ScriptEngine是java的一个javaScript实现类 ,可以完成操作,稍有难度!

回答4:

public static void main(String[] args) {
ScriptEngine se = new ScriptEngineManager().getEngineByName("JavaScript");
String str = "2*3-45/5+9+9%5";
try {
Double d = (Double) se.eval(str);
System.out.println(d);
} catch (ScriptException e) {
e.printStackTrace();
}
}