0

実数(負の数を含む)の接尾辞式から接尾辞式への変換を可能にするアプリを作成しました。最初に負の数を入れてからマイナスの数を入れた場合を除いて、完全に機能します。たとえば、-1 - 2または-2 + 8 - 9。と表示され-1-2ます-2 8-9 +。とする必要が-1 2 -あり-2 8 + 9 -ます。記号がである場合、それは確かに問題です-。これは、入力文字が「-」の場合のコードの一部です。

for (int j = 0; j < input.length(); j++) {
    char ch = input.charAt(j);
    if (ch == '-') {
                    if ((ch == input.charAt(0)) || (input.charAt(j - 1) == '(')
                            || (input.charAt(j - 1) == '-'))
                        temp = temp + ch;
                    else {
                        output = output + temp + " ";
                        temp = "";
                        gotOper(ch, 1);
                    }
                }
    else if ..
    ...
    }

アプリが検出-し、それが最初inputまたは後(または後に-ある場合、それは負の数であり、一時変数に入れます。0から9の間、またはの.場合、同じことです。それ以外の場合、それがオペランドである場合、私はそれを中に入れtempoutputスタックを使用して操作を行います。コード全体を表示することはできません。非常に長いです。誰かが私を助けてくれますか?

編集:私はinput = input.replaceAll("\\s+", "");すべての空白を削除するためにこれを行いました

4

1 に答える 1

2

2番目のifステートメントのこの部分(ch == input.charAt(0))は。に置き換える必要があり(j == 0)ます。ch == '-'それ以外の場合、入力も。で始まる場合は常にtrueを返します'-'

于 2013-03-26T15:53:04.513 に答える