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 = computing
StringTokenizer 是出于兼容性的原因而被保留的遗留类(虽然在新代码中并不鼓励使用它)。建议所有寻求此功能的人使用 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()