0

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

3 に答える 3