Java输入处理求助

P1449 后缀表达式

msskx @ 2022-01-03 10:03:41

我的思路是直接一行读入然后直遍历字符串,利用StringBuilder拼接存储数字

但是这个StringBuilder在压栈的时候会报错显示空

蒟蒻请求大佬帮助

import java.util.*;
public class Main {

    public static void main(String[] args) {
        Scanner input=new Scanner(System.in);
        String s=input.nextLine();
        int len=s.length();
        Stack<Integer>st=new Stack<>();

        for(int i=0;i<len-1;i++) {
            StringBuilder sb = new StringBuilder();

            char c=s.charAt(i);
            if(c>='0'&&c<='9') {
                sb.append(c);

            }else if(c=='.') {
                int temp=Integer.valueOf(sb.toString());
                System.out.println(temp);
                st.push(temp);
                sb.setLength(0);

            }else if(c=='+'||c=='-'||c=='/'||c=='*') {
                int num2=st.pop();
                int num1=st.pop();
                if(c=='+') {
                    st.push(num1+num2);
                }else if(c=='-') {
                    st.push(num1-num2);
                }else if(c=='*') {
                    st.push(num1*num2);
                }else if(c=='/') {
                    st.push(num1/num2);
                }
            }
        }
        System.out.println(st.pop());

    }

}

by ud2_ @ 2022-01-03 10:07:59

每次迭代中,前面刚 new 了一个新的空 StringBuilder,后面就尝试转为 int,当然报错。


by msskx @ 2022-01-03 10:10:08

@ud2_ 感谢大佬指点!!成功AC


|