0

ワンステップの方程式を入力して解くことができるプログラムを作ろうとしています。任意の方法で入力できるようにするために、すべての文字をチェックしてそれが何であるかを確認するforループを実行しています。しかし、その時、私はこれに二桁の数字を使うことができないことに気づきました。そこで、右側に文字があるかどうかをチェックする小さな関数を追加して、それが数字かどうかをテストしてみました。そして、それが数字の場合は、それとそれが見つけたものを組み合わせて、単一の数字にします。1が表示され、右側に0があることを確認すると、10が返されます。この関数のコードは次のとおりです。

        Find = equation.charAt(i);

        if (Character.isDigit(Find))
        {
            if(Found == 0)
            {
                if(i < equation.length() - 1)
                {
                    FindNext = equation.charAt(i + 1);
                    if (Character.isDigit(FindNext))
                    {
                        one = (Character.toString(Find) + Character.toString(FindNext));
                        Found = 2;
                        One = Double.parseDouble(one);
                    }
                }
                else
                {
                    one = (Character.toString(Find));
                    Found = 2;
                    One = Double.parseDouble(one);
                }
            }
            else
            {
                if(i + 1 < equation.length() - 1)
                {
                    FindNext = equation.charAt(i + 1);
                    if (Character.isDigit(FindNext))
                    {
                        two = (Character.toString(Find) + Character.toString(FindNext));
                        Two = Double.parseDouble(one);
                    }
                }
                else
                {
                    two = (Character.toString(Find));
                    Two = Double.parseDouble(two);
                }
            }
        }

誰かが私が間違っていることを見ていますか?

4

1 に答える 1

3

そして、その数が100の場合は?1000?10000?...あなたはポイントを取得します。単純に1文字先を確認することはできません。代わりに、サポートする操作(つまり+、、、など)で解析を分離する必要があります。そうすれば、数値を取得するのがはるかに簡単になります。-*

于 2012-06-18T16:04:26.907 に答える