别用StringTokenizer,用最土的办法:        String str = "abcd'efg'cd''df";
        while ( str.indexOf("'")!=-1 ) {
            System.out.println(str.substring(0,str.indexOf("'")));
            str = str.substring(str.indexOf("'")+1);
        }
        System.out.println(str);

解决方案 »

  1.   

    哪就在''间加入个空格吧。StringTokenizer分割的是字符窜。
      

  2.   

    用StringTokenizer(str, "\'", true)来构造
    import java.util.*;
    import java.text.*;
    public class Test {

    public static void main(String  args[]) throws Exception{
    String strLine = "abcd'efg'cd''df";
    StringTokenizer strTokenizer = new StringTokenizer(strLine,"\'",true);
    String strTmp="";
    int i=0;
    while ( strTokenizer.hasMoreElements())
    {
      String s = strTokenizer.nextToken();
      if( s.equals(",")) {     
         System.err.println("strTmp" + (i++) + "=" + strTmp);
         strTmp="";
      }else
        strTmp = s;
    }
    System.err.println("strTmp" + (i++) + "=" + strTmp);
    }

    }
      

  3.   

    这样是可以,
    而且数组的维数是根据StringTokenizer 分割的数目来做的,对下面的工作来说非常重要.
    但是我要把这些字符串放到数组里面,
    strTokenizer.countTokens()为9,我要的应该是为5.