s.charAt()返回的是基本数据类型char
Character是个class。它是把一个基本数据类型char转换成objects中的字符是标点的话不把它压入栈中,我有个笨方法,我主要是为了抛砖引玉
for( int i = 0; i < s.length(); i++ ) 
   {
           char c=s.charAt(i); 
           switch(c)
             {
               case '?': break;
               case ':'break;
..................       //标点
               case '>':break;     
              
              default:
                  stack.push( new Character(c) );
                  break;
              }         
   }

解决方案 »

  1.   

    charAt(int)是把String中的字符取出,Character()方法将char转换成一个对象,只有对象类型才能保存在Stack中。
    你的异常是什么?
      

  2.   

    我把 seven1996(小七)的代码加进去了,结果果然出现异常:如下,当我输入aass??aa后

    java.util.EmptyStackException
    at java.util.Stack.peek(Stack.java:79)
    at java.util.Stack.pop(Stack.java:61)
    at huiwenpanduan.main(huiwenpanduan.java:31)
    Exception in thread "main" 
      

  3.   

    这应该是你出栈的语句抛出的异常,
    检查你调用pop()方法的地方
      

  4.   

    你是不是还没有push就有pop操作