StringTokenizer
StringTokenizer是java中object类的一个子类,继承自 Enumeration接口。此类允许一个应用程序进入一个令牌(tokens),而且StringTokenizer类用起来比StreamTokenizer 类更加简单。StringTokenizer不会区分对象、函数、数组、或引证字符串。
StringTokenizer
StringTokenizer的实例有两种方式,这两种方式取决于returnDelims 标记位的值是true或false。
1.true
标记为true,定界符字元是他们自己的令牌,此令牌或者是一个定界符字元,或者是一个最大序列连续无分隔字符的字元。
2.false
标记为false,定界符为多个 标识符符所服务。此令牌是一个最大序列连续无分隔字符的字元。
StrinigTokenizer类的对象在内部已经标识化的字符串中维持了当前位置。一些操作使得在现有位置上的字符串提前得到处理。 一个令牌的值是由获得其曾经创建StringTokenizer类对象的字串所返回的。 接下来是运用此类的一个实例。 代码:
StringTokenizer st = new StringTokenizer("this is a test");
while (st.hasMoreTokens()) {
System.out.println(st.nextToken());
}
打印出来之后是:
this
is
a
test
接下来的实例阐明了Stirng.split方法如何将一个字符串分解成其基本令牌的。 String[] result = "this is a test".split("\\s");
for (int x=0; x<result.length; x++)
System.out.println(result[x]);
打印出来之后是:
this
is
a
test
StringTokenizer 是出于兼容性的原因而被保留的遗留类(虽然在新代码中并不鼓励使用它)。建议所有寻求此功能的人使用 String 的 split 方法或 java.util.regex 包。
===================================================================
StringBuilder testString = new StringBuilder();
for (int i = 0; i < 10; i++) {
testString.append(i + "|");
}
StringTokenizer st = new StringTokenizer(testString.toString(), "|", false);
while (st.hasMoreTokens()) {
System.out.println(st.nextToken());
}
执行结果
0
1
2
3
4
5
6
7
8
9
StringBuilder testString = new StringBuilder();
for (int i = 0; i < 10; i++) {
testString.append(i + "|");
}
StringTokenizer st = new StringTokenizer(testString.toString(), "|", true);
while (st.hasMoreTokens()) {
System.out.println(st.nextToken());
}
执行结果
0
|
1
|
2
|
3
|
4
|
5
|
6
|
7
|
8
|
9
|