実数(負の数を含む)の接尾辞式から接尾辞式への変換を可能にするアプリを作成しました。最初に負の数を入れてからマイナスの数を入れた場合を除いて、完全に機能します。たとえば、-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の間、またはの.
場合、同じことです。それ以外の場合、それがオペランドである場合、私はそれを中に入れtemp
、output
スタックを使用して操作を行います。コード全体を表示することはできません。非常に長いです。誰かが私を助けてくれますか?
編集:私はinput = input.replaceAll("\\s+", "");
すべての空白を削除するためにこれを行いました