Javaで後置計算機を作成するためにスタックを使用しています。主要部分を書きましたが、いくつかの問題に遭遇しています。手始めに、空白を考慮する必要がありますが、現在のセットアップでそれを行う方法がわかりません。それがプログラムを完全に修正するかどうかはわかりませんが、それは始まりです. どんな助けでも大歓迎です。
import java.util.Scanner;
import java.util.Stack;
public class Postfix
{
public static void main(String[]args)
{
Scanner sc = new Scanner(System.in);
System.out.println("Enter a Postfix expression");
String input = sc.nextLine();
Stack<Integer> Pstack = new Stack<Integer>();
int result = 0;
for(int i=0; i<input.length();i++)
{
char ch = input.charAt(i);
if(ch>='0' && ch<='9')
{
Pstack.push((int)(ch-'0'));
}
else
{
int o1 = Pstack.pop();
int o2 = Pstack.pop();
switch(ch)
{
case '+':result=o1+o2;
break;
case '-':result=o1-o2;
break;
case '/':result=o1/o2;
break;
case '*':result=o1*o2;
}
}
Pstack.push(result);
}
result = Pstack.pop();
System.out.println("result: "+ result);
}
}