import java.util.StringTokenizer;public class TestToken { /**
 * @param args
 */
public static void main(String[] args) { StringTokenizer token = new StringTokenizer("REPORT_AUDIT_END_DATE-^-22-09-2009", "-^-");     while (token.hasMoreElements()) {
System.out.println(token.nextElement());

}
}}输出:REPORT_AUDIT_END_DATE
22
09
2009
我的理解只会输出两个
REPORT_AUDIT_END_DATE
22-09-2009怎么会有四个值的呢,要怎么做才只有这两个值?

解决方案 »

  1.   

    StringTokenizer第二个参数的意思是,其中的每个字符都是分隔符,
    你这边就是-和^都是分隔符
      

  2.   

    建议不要用StringTokenizer
    用String的split
      

  3.   

    这个类还是不要用了 快要被淘汰了用String的split方法吧
      

  4.   


    String str = "REPORT_AUDIT_END_DATE-^-22-09-2009";
    String[] temp = str.split("-\\^-");
    for(int i = 0 ;i < temp.length;i++){
    System.out.println(temp[i]);
    }
      

  5.   


    方法一,替换其他符号:
     String str = "REPORT_AUDIT_END_DATE-^-22-09-2009".replaceAll("-\\^-", "#");
            StringTokenizer token = new StringTokenizer(str, "#");         while (token.hasMoreTokens()) { 
                System.out.println(token.nextElement()); 
            }
      

  6.   

    非要用的话就先把"-^-"转化成"^"
    replaceAll("-^-","^"),
    StringTokenizer token = new StringTokenizer("REPORT_AUDIT_END_DATE-^-22-09-2009", "-^-"); 
    构造器里面的第2个参数:"-^-",会被分解为三个"-","^","-",也就是有这3个符号的地方,都会被分解,不会把它看做一个整体。
      

  7.   

    StringTokenizer token = new StringTokenizer("123456789", "369");
     
    while (token.hasMoreElements()) { 
        System.out.println(token.nextElement()); 

    //打印结果是:12,45,78 而不是123456789
      

  8.   

    如果非用StringTokenizer ,
    赞成 5楼的方法,把-^-替换掉
    最好用split
      String str1 = "REPORT_AUDIT_END_DATE-^-22-09-2009";
      System.out.println(str1.split("-\\^-")[0]); 
      System.out.println(str1.split("-\\^-")[1]); 
      

  9.   

    在不用正则的情况下,stringtokenizer的效率比split要高