0
역 폴란드어 표기법 알고리즘을 만들고 싶지만 코드가 작동하지 않습니다. 아무도 그 이유를 설명 할 수 있습니까? 내 코드에서 "/ + - *"토큰까지 문자를 가져 가고 싶습니다. 이 토큰이 다음에 있다면 조작을하십시오.역 폴란드어 표기법 Java
import java.util.Stack;
import java.util.StringTokenizer;
import javax.swing.JOptionPane;
public class ONP {
public static void main(String[] args) {
Stack<Double> stack = new Stack<Double>();
double number1;
double number2;
String x = JOptionPane.showInputDialog("Tokens");
StringTokenizer str = new StringTokenizer(x);
while (str.hasMoreElements()) {
str.nextElement();
stack.push((Double) str.nextElement());
for (int i = 0; i < x.length(); i++) {
switch (x.charAt(i)) {
case '+':
number1 = stack.pop();
number2 = stack.pop();
System.out.println(number1 + number2);
break;
case '-':
number1 = stack.pop();
number2 = stack.pop();
System.out.println(number1 - number2);
break;
case '/':
number1 = stack.pop();
number2 = stack.pop();
System.out.println(number1/number2);
break;
case '*':
number1 = stack.pop();
number2 = stack.pop();
System.out.println(number1 * number2);
break;
}
}
System.out.println(stack.pop());
}
}
}
StringBuilder 또는 sth없이 작성하고 싶습니다.
입력 :
2 2 + 2/2/
출력 :
(2+2)/2/2