Postfix Evaluator - это программа, которая получает выражение postfix и вычисляет значение
выражение. Форма постфикса представляет собой естественный способ оценки выражений, потому что правила приоритета
не требуются. Черный ящик, показанный ниже, представляет Оценщик Постфикса. Если мы дадим вход 4 2 3 *
+, программа выдаст вывод 10. Моя задача - написать программу для постфиксного оценщика с Ввод заканчивается точкой с запятой . вход
пример:
Стек 7
4 2 3 * +;
import java.util.Scanner;
import java.util.Stack;
public class Task2 {
public static void main(String[] args) {
String p;
Scanner s=new Scanner(System.in);
p=s.nextLine();
while(!(p.equals(";"))) {
Stack<Integer> st=new Stack<Integer>();
Scanner sc=new Scanner(p);
int a,b,c;
String operator;
while(sc.hasNext()==true) {
if(sc.hasNextInt()==true)
st.push(sc.nextInt());
else
{
operator=sc.next().trim();
a=st.pop();
b=st.pop();
switch (operator)
{
case "^" :
c=(int) Math.pow(b,a);
st.push(c);
break;
case "%" :
c=b%a;
st.push(c);
break;
case "*" :
c=b*a;
st.push(c);
break;
case "/" :
c=b/a;
st.push(c);
break;
case "+" :
c=b+a;
st.push(c);
break;
case "-" :
c=b-a;
st.push(c);
break;
} // switch
} //else
}//while loop
int result;
result=st.pop();
System.out.println(result);
}
}
}