StringTokenizer是一个用来分隔String的应用类,相当于VB的split函数。
1、构造函数
StringTokenizer(String str):构造一个用来解析str的StringTokenizer对象。java默认的分隔符是“空格”、“制表符(‘\t’)”、“换行符(‘\n’)”、“回车符(‘\r’)”
StringTokenizer(String str, String delim):构造一个用来解析str的StringTokenizer对象,并提供一个指定的分隔符。
StringTokenizer(String str, String delim, boolean returnDelims):构造一个用来解析str的StringTokenizer对象,并提供一个指定的分隔符,同时,指定是否返回分隔符。
2、方法
所有方法均为public;
书写格式:[修饰符] <返回类型><方法名([参数列表])>
如:static int parseInt(String s)表示:此方法(parseInt)为类方法(static),返回类型为(int),方法所需参数为String类型。
1. int countTokens():返回nextToken方法被调用的次数。如果采用构造函数1和2,返回的就是分隔符数量(例2)。
2. boolean hasMoreTokens():返回是否还有分隔符。
3. boolean hasMoreElements() :结果同2。
4. String nextToken():返回从当前位置到下一个分隔符的字符串。
5. Object nextElement():结果同4。
6. String nextToken(String delim):与4类似,以指定的分隔符返回结果。
示例1
public static void main(String[] args) {
String s = new String("The Java platform is the ideal platform for network computing");
StringTokenizer st = new StringTokenizer(s);
System.out.println("Token Total: " + st.countTokens());
while (st.hasMoreElements()) {
System.out.println(st.nextToken());
}
}
结果
Token Total: 10
The
Java
platform
is
the
ideal
platform
for
network
computing示例2
public static void main(String[] args) {
String s = new String("The=Java=platform=is=the=ideal=platform=for=network=computing");
StringTokenizer st = new StringTokenizer(s, "=", true);
System.out.println("Token Total: " + st.countTokens());
while (st.hasMoreElements()) {
System.out.println(st.nextToken());
}
}
结果
Token Total: 19
The
=
Java
=
platform
=
is
=
the
=
ideal
=
platform
=
for
=
network
=
computing示例3
public static void main(String[] args) {
String s = new String("The Java platform is the ideal platform for network computing");
StringTokenizer st = new StringTokenizer(s);
System.out.println("Token Total: " + st.countTokens());
while (st.hasMoreElements()) {
System.out.println("-----------------------");
// 返回从当前位置到下一个分隔符的字符串。
System.out.println(st.nextToken());
// System.out.println(st.nextToken("i")); //以指定的分隔符返回结果 默认为“ ”;
}
// 如果上面的循环执行完nextToken()或nextElement()方法,下面的标记将不执行,也就是说不进入while循环
while (st.hasMoreTokens()) {
System.out.println("=======");
System.out.println(st.nextElement());
}
String s2 = new String("The=Java=platform=is=the=ideal=platform=for=network=computing");
// 构造方法中第一个参数表示字符串,第二参数分隔符,第三参数表示是否返回字符串
StringTokenizer st2 = new StringTokenizer(s2, "=", true);
System.out.println("Token Total: " + st2.countTokens());
while (st2.hasMoreElements()) {
System.out.println(st2.nextToken());
}
}
结果
Token Total: 10
-----------------------
The
-----------------------
Java
-----------------------
platform
-----------------------
is
-----------------------
the
-----------------------
ideal
-----------------------
platform
-----------------------
for
-----------------------
network
-----------------------
computing
Token Total: 19
The
=
Java
=
platform
=
is
=
the
=
ideal
=
platform
=
for
=
network
=
computingStringTokenizer 是出于兼容性的原因而被保留的遗留类(虽然在新代码中并不鼓励使用它)。建议所有寻求此功能的人使用 String 的split 方法或 java.util.regex 包。
下面的示例阐明了如何使用 String.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从以下版本开始:
JDK1.0
另请参见:
| 构造方法摘要 | |
|---|---|
StringTokenizer(String str)为指定字符串构造一个 string tokenizer。 | |
StringTokenizer(String str, String delim)为指定字符串构造一个 string tokenizer。 | |
StringTokenizer(String str, String delim, boolean returnDelims)为指定字符串构造一个 string tokenizer。 | |
| 方法摘要 | |
|---|---|
int | countTokens()计算在生成异常之前可以调用此 tokenizer 的 nextToken 方法的次数。 |
boolean | hasMoreElements()返回与 hasMoreTokens 方法相同的值。 |
boolean | hasMoreTokens()测试此 tokenizer 的字符串中是否还有更多的可用标记。 |
Object | nextElement()除了其声明返回值是 Object 而不是 String 之外,它返回与 nextToken 方法相同的值。 |
String | nextToken()返回此 string tokenizer 的下一个标记。 |
String | nextToken(String delim)返回此 string tokenizer 的字符串中的下一个标记。 |
| 从类 java.lang.Object 继承的方法 |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| 构造方法详细信息 |
|---|
StringTokenizer
public StringTokenizer(String str, String delim, boolean returnDelims)
为指定字符串构造一个 string tokenizer。
delim参数中的所有字符都是分隔标记的分隔符。如果
returnDelims标志为true,则分隔符字符也作为标记返回。每个分隔符都作为一个长度为 1 的字符串返回。如果标志为false,则跳过分隔符,只是用作标记之间的分隔符。注意,如果 delim 为 null,则此构造方法不抛出异常。但是,尝试对得到的 StringTokenizer 调用其他方法则可能抛出NullPointerException。
参数:
str- 要解析的字符串。delim- 分隔符。returnDelims- 指示是否将分隔符作为标记返回的标志。抛出:
NullPointerException- 如果 str 为null。
StringTokenizer
public StringTokenizer(String str, String delim)
为指定字符串构造一个 string tokenizer。
delim参数中的字符都是分隔标记的分隔符。分隔符字符本身不作为标记。注意,如果 delim 为 null,则此构造方法不抛出异常。但是,尝试对得到的 StringTokenizer 调用其他方法则可能抛出NullPointerException。
参数:
str- 要解析的字符串。delim- 分隔符。抛出:
NullPointerException- 如果 str 为null。
StringTokenizer
public StringTokenizer(String str)
为指定字符串构造一个 string tokenizer。tokenizer 使用默认的分隔符集
" \t\n\r\f",即:空白字符、制表符、换行符、回车符和换页符。分隔符字符本身不作为标记。参数:
str- 要解析的字符串。抛出:
NullPointerException- 如果 str 为null。
| 方法详细信息 |
|---|
hasMoreTokens
public boolean hasMoreTokens()
测试此 tokenizer 的字符串中是否还有更多的可用标记。如果此方法返回 true,那么后续调用无参数的 nextToken 方法将成功地返回一个标记。
返回:
当且仅当该字符串中当前位置后至少有一个标记时才为
true;否则为false。
nextToken
public String nextToken()
返回此 string tokenizer 的下一个标记。
返回:
此 string tokenizer 的下一个标记。
抛出:
NoSuchElementException- 如果此 tokenizer 的字符串中没有更多标记。
nextToken
public String nextToken(String delim)
返回此 string tokenizer 的字符串中的下一个标记。首先,字符集被更改为字符串 delim 中的字符,该字符集被认为是 StringTokenizer对象的分隔符。接着返回字符串中当前位置之后的下一个标记。当前位置被提前到所识别的标记前。进行此调用后新的分隔符集仍然保持默认值。
参数:
delim- 新的分隔符。返回:
转换到新的分隔符集后的下一个标记。
抛出:
NoSuchElementException- 如果此 tokenizer 的字符串中没有更多标记。NullPointerException- 如果 delim 为null。
hasMoreElements
public boolean hasMoreElements()
返回与
hasMoreTokens方法相同的值。它的存在使得此类可以实现Enumeration接口。指定者:
接口
Enumeration<Object>中的hasMoreElements返回:
如果有更多标记,则为
true;否则为false。另请参见:
Enumeration,hasMoreTokens()
nextElement
public Object nextElement()
除了其声明返回值是
Object而不是String之外,它返回与nextToken方法相同的值。它的存在使得此类可以实现Enumeration接口。指定者:
接口
Enumeration<Object>中的nextElement返回:
字符串中的下一个标记。
抛出:
NoSuchElementException- 如果此 tokenizer 的字符串中没有更多标记。另请参见:
Enumeration,nextToken()
countTokens
public int countTokens()
计算在生成异常之前可以调用此 tokenizer 的
nextToken方法的次数。当前位置没有提前。返回:
使用当前分隔符集的字符串中剩余的标记数。
另请参见:
nextToken()
未经允许请勿转载:程序喵 » 【Java】StringTokenizer类的使用方法
程序喵