示例代码如下,代码说明请看注释:

  1. /*  
  2.  * @(#) TestStringTokenizer.java  
  3.  * by James Fancy  
  4.  * on 2003-9-27  
  5.  */ 
  6.  
  7. import java.util.StringTokenizer;  
  8.  
  9. /** *//**  
  10.  * <code>TestStringTokenizer</code> 类给出了三个示例,  
  11.  * 演示了 StringTokenizer 类 的常见用法。  
  12.  *   
  13.  * @author James Fancy on 2003-9-27 9:12:34  
  14.  */ 
  15. public final class TestStringTokenizer ...{  
  16.  
  17.     public final static void main(String[] args) ...{  
  18.     TestStringTokenizer test = new TestStringTokenizer();  
  19.     test.test1();  
  20.     test.test2();  
  21.     test.test3();  
  22.     }  
  23.  
  24.     String source = "abcdefg;hijklmn|opqrst,uvw.xyz";  
  25.  
  26.     String source3 = "The file "Good Java Code.txt" is in dir" 
  27.         + " "My Documents" of volume "Doc Volume"";  
  28.  
  29.     String delim = ";,.|"// 包含分号、逗号、句点、竖址分隔符  
  30.  
  31.     String delim2 = " ""; // 包含空格、引号  
  32.  
  33.     String delim3 = """; // 仅包含引号  
  34.  
  35.     /** *//**  
  36.      * 演示 StringTokenizer 最常用的用法,  
  37.      * 使用 StringTokenizer(String, String) 构造 Tokenizer。  
  38.      */ 
  39.     public void test1() ...{  
  40.     this.printSeparater("TEST1");  
  41.     StringTokenizer tokenizer;  
  42.     tokenizer = new StringTokenizer(source, delim);  
  43.  
  44.     while (tokenizer.hasMoreTokens()) ...{  
  45.         System.out.println(tokenizer.nextToken());  
  46.     }  
  47.     }  
  48.  
  49.     /** *//**  
  50.      * 演示 StringTokenizer 的 nextToken(String) 用法  
  51.      */ 
  52.     public void test2() ...{  
  53.     this.printSeparater("TEST2");  
  54.     StringTokenizer tokenizer = new StringTokenizer(source);  
  55.     while (tokenizer.hasMoreTokens()) ...{  
  56.         System.out.println(tokenizer.nextToken(delim));  
  57.     }  
  58.     }  
  59.  
  60.     /** *//**  
  61.      * 一个较综合的示例,它拆分一句话,将每个单词拆分出来,  
  62.      * 其中,被双引号包含 的若干单词被处理为一个单词输出。  
  63.      */ 
  64.     public void test3() ...{  
  65.     this.printSeparater("TEST3");  
  66.     String delim = delim2;  
  67.     String word;  
  68.     boolean begin = false;  
  69.  
  70.     StringTokenizer tokenizer = new StringTokenizer(source3, delim, true);  
  71.     while (tokenizer.hasMoreTokens()) ...{  
  72.         word = tokenizer.nextToken(delim);  
  73.         if (word.equals(""")) ...{  
  74.         if (begin) ...{  
  75.             delim = delim2;  
  76.             begin = false;  
  77.         } else ...{  
  78.             delim = delim3;  
  79.             begin = true;  
  80.         }  
  81.         } else if (!word.equals(" ")) ...{  
  82.         System.out.println(word);  
  83.         }  
  84.     }  
  85.     }  
  86.  
  87.     private void printSeparater(String title) ...{  
  88.     System.out.println("--------- " + title + " ---------");  
  89.     }  
  90.  

运行结果如下,看看是不是你根据代码猜想的一样:

--------- TEST1 ---------
abcdefg
hijklmn
opqrst
uvw
xyz
--------- TEST2 ---------
abcdefg
hijklmn
opqrst
uvw
xyz
--------- TEST3 ---------
The
file
Good Java Code.txt
is
in
dir
My Documents
of
volume
Doc Volume