String sTest ="|Test|ttt||tedd";
StringTokenizer st =new StringTokenizer(sTest,"|");
while(st.hasMoreTokens()){
String s1  = st.nextToken();
     String s2  = st.nextToken();
     String s3  = st.nextToken();
                        //String s4  = st.nextToken();
     System.out.println("s1------"+s1);
     System.out.println("s2------"+s2);
     System.out.println("s3------"+s3);
                        //System.out.println("s4------"+s4);  }
得到 s1------Test
s2------ttt
s3------tedd
结果,但是我想  在 s3处得到空值.......然后s4处得到tedd
各位大侠有什么好办法呢?  我现在的办法是 StringTokenizer st =new StringTokenizer(sTest,"|",true);
然后挨个判断是否是|,不知还有什么其他的好办法啊
分不多了,见谅啊 谢谢 大家

解决方案 »

  1.   

    用split()方法啊  :-) 返回的是一个String型数组 里面会有的
      

  2.   

    如楼上所说:
        String   sTest   =" ¦Test ¦ttt ¦ ¦tedd";
        sTest = sTest.trim().replaceFirst("^¦", "");
        String[] str = sTest.split(" ¦");
        for(int i=0;i<str.length;i++)System.out.println(str[i]);
      

  3.   

    StringTokenizer 是出于兼容性的原因而被保留的遗留类(虽然在新代码中并不鼓励使用它)。建议所有寻求此功能的人使用 String 的 split 方法或 java.util.regex 包
      

  4.   

    嗯。。或者你用indexOf来实现。
      

  5.   

    但是我在文本中 有上万条数据用|分割,需要我来读取
    如果用 split的话是根本没有办法来准确的分割和合并的啊
      

  6.   

    而且用split分割成一个一个的字符
    ...没有更好的办法么
      java.util.regex   ? 
    怎么用呢?
    恩回头我试试看看
    indexOf也可以拆分么?
    谢谢
      

  7.   

    即使你用的是 jdk1.3,也应该用 org.apache.commons.lang.StringUtils 的 split("|") 方法的