よし、文字列としての式ソルバーを作成しようとしています。これにより、ユーザーは 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;
}
}