好的,所以我正在尝试制作一个表达式为字符串的求解器,以便用户可以输入一个字符串,例如 2+4*5/10,它会打印出答案,4。我有编写了一些代码,但它不应用操作顺序;它只是按运算符的顺序求解方程 - 例如 2+4*5/10 会产生 3,这是不正确的。我如何使它先执行乘法和除法,然后执行加法和减法?这是我现在拥有的代码:
class Expressions
{
String E;
void SetE(String e)
{
E = e;
}
int EvalE()
{
int res = 0;
int temp = 0;
char op = '+';
for(int i=0;i<E.length();i++)
{
if(E.charAt(i)=='*'||E.charAt(i)=='/'||E.charAt(i)=='+'||E.charAt(i)=='-')
{
if(op=='*')res*=temp;
else if(op=='/')res/=temp;
else if(op=='+')res+=temp;
else res-=temp;
temp=0;
op=E.charAt(i);
}
else
{
temp = temp*10+E.charAt(i)-'0';
}
}
if(op=='*')res*=temp;
else if(op=='/')res/=temp;
else if(op=='+')res+=temp;
else res-=temp;
return res;
}
}