我试过了一切正常.
package myapp;/**
 * <p>Title: </p>
 * <p>Description: </p>
 * <p>Copyright: Copyright (c) 2003</p>
 * <p>Company: </p>
 * @author unascribed
 * @version 1.0
 */
import java.util.Stack;
public class Untitled1 {  public Untitled1() {
  }
  public static void main(String[] args) {
    Untitled1 untitled11 = new Untitled1();
    String s="sal;djfkl.,,";
    Stack stack=new Stack();
    for( int i = 0; i < s.length(); i++ )
   {
           char c=s.charAt(i);
           switch(c)
           {
                   case '?':break;
                   case ':':break;
                   case ' ':break;
                   case ',':break;
           default:
               stack.push( new Character(c) );
               break;
           }
        }
  }
}

解决方案 »

  1.   

    这么简单的就不用switch语句即可,不过好像没有异常抛出啊。
      

  2.   

    又是这个问题??
    结合你的帖子http://expert.csdn.net/Expert/topic/1841/1841818.xml?temp=.3774988
    我猜你是在出栈的时候.用了类似于:
    for(int i = 0;i< s.length(); i++){
       stack.pop();
    }
    的办法了.标点符号没有进栈,做了s.length()次出栈,当然有错了.
      

  3.   

    同意cooled(经典中--经过非典中) 的看法
    好像楼主的这段代码我也有份阿!呵呵!
    单看这段代码不觉得哪里有错阿