2003年9月发于 CCW-I
2006年9月搬至 CSDN
示例代码如下,代码说明请看注释:
/**/
/*
* @(#) TestStringTokenizer.java
* by James Fancy
* on 2003-9-27
*/
import java.util.StringTokenizer;
/** */ /**
* <code>TestStringTokenizer</code> 类给出了三个示例,
* 演示了 StringTokenizer 类 的常见用法。
*
* @author James Fancy on 2003-9-27 9:12:34
*/
public final class TestStringTokenizer ... {
public final static void main(String[] args) ...{
TestStringTokenizer test = new TestStringTokenizer();
test.test1();
test.test2();
test.test3();
}
String source = "abcdefg;hijklmn|opqrst,uvw.xyz";
String source3 = "The file "Good Java Code.txt" is in dir"
+ " "My Documents" of volume "Doc Volume"";
String delim = ";,.|"; // 包含分号、逗号、句点、竖址分隔符
String delim2 = " ""; // 包含空格、引号
String delim3 = """; // 仅包含引号
/** *//**
* 演示 StringTokenizer 最常用的用法,
* 使用 StringTokenizer(String, String) 构造 Tokenizer。
*/
public void test1() ...{
this.printSeparater("TEST1");
StringTokenizer tokenizer;
tokenizer = new StringTokenizer(source, delim);
while (tokenizer.hasMoreTokens()) ...{
System.out.println(tokenizer.nextToken());
}
}
/** *//**
* 演示 StringTokenizer 的 nextToken(String) 用法
*/
public void test2() ...{
this.printSeparater("TEST2");
StringTokenizer tokenizer = new StringTokenizer(source);
while (tokenizer.hasMoreTokens()) ...{
System.out.println(tokenizer.nextToken(delim));
}
}
/** *//**
* 一个较综合的示例,它拆分一句话,将每个单词拆分出来,
* 其中,被双引号包含 的若干单词被处理为一个单词输出。
*/
public void test3() ...{
this.printSeparater("TEST3");
String delim = delim2;
String word;
boolean begin = false;
StringTokenizer tokenizer = new StringTokenizer(source3, delim, true);
while (tokenizer.hasMoreTokens()) ...{
word = tokenizer.nextToken(delim);
if (word.equals(""")) ...{
if (begin) ...{
delim = delim2;
begin = false;
} else ...{
delim = delim3;
begin = true;
}
} else if (!word.equals(" ")) ...{
System.out.println(word);
}
}
}
private void printSeparater(String title) ...{
System.out.println("--------- " + title + " ---------");
}
}
* @(#) TestStringTokenizer.java
* by James Fancy
* on 2003-9-27
*/
import java.util.StringTokenizer;
/** */ /**
* <code>TestStringTokenizer</code> 类给出了三个示例,
* 演示了 StringTokenizer 类 的常见用法。
*
* @author James Fancy on 2003-9-27 9:12:34
*/
public final class TestStringTokenizer ... {
public final static void main(String[] args) ...{
TestStringTokenizer test = new TestStringTokenizer();
test.test1();
test.test2();
test.test3();
}
String source = "abcdefg;hijklmn|opqrst,uvw.xyz";
String source3 = "The file "Good Java Code.txt" is in dir"
+ " "My Documents" of volume "Doc Volume"";
String delim = ";,.|"; // 包含分号、逗号、句点、竖址分隔符
String delim2 = " ""; // 包含空格、引号
String delim3 = """; // 仅包含引号
/** *//**
* 演示 StringTokenizer 最常用的用法,
* 使用 StringTokenizer(String, String) 构造 Tokenizer。
*/
public void test1() ...{
this.printSeparater("TEST1");
StringTokenizer tokenizer;
tokenizer = new StringTokenizer(source, delim);
while (tokenizer.hasMoreTokens()) ...{
System.out.println(tokenizer.nextToken());
}
}
/** *//**
* 演示 StringTokenizer 的 nextToken(String) 用法
*/
public void test2() ...{
this.printSeparater("TEST2");
StringTokenizer tokenizer = new StringTokenizer(source);
while (tokenizer.hasMoreTokens()) ...{
System.out.println(tokenizer.nextToken(delim));
}
}
/** *//**
* 一个较综合的示例,它拆分一句话,将每个单词拆分出来,
* 其中,被双引号包含 的若干单词被处理为一个单词输出。
*/
public void test3() ...{
this.printSeparater("TEST3");
String delim = delim2;
String word;
boolean begin = false;
StringTokenizer tokenizer = new StringTokenizer(source3, delim, true);
while (tokenizer.hasMoreTokens()) ...{
word = tokenizer.nextToken(delim);
if (word.equals(""")) ...{
if (begin) ...{
delim = delim2;
begin = false;
} else ...{
delim = delim3;
begin = true;
}
} else if (!word.equals(" ")) ...{
System.out.println(word);
}
}
}
private void printSeparater(String title) ...{
System.out.println("--------- " + title + " ---------");
}
}
运行结果如下,看看是不是你根据代码猜想的一样:
--------- 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