类 StringTokenizer
2011-05-01 11:21 Rollen Holt 阅读(11337) 评论(0) 编辑 收藏 举报java.util
类 StringTokenizer
java.lang.Object java.util.StringTokenizer
- 所有已实现的接口:
- Enumeration<Object>
-
public class StringTokenizer
- extends Object
- implements Enumeration<Object>
string tokenizer 类允许应用程序将字符串分解为标记。tokenization 方法比
StreamTokenizer
类所使用的方法更简单。StringTokenizer
方法不区分标识符、数和带引号的字符串,它们也不识别并跳过注释。
可以在创建时指定,也可以根据每个标记来指定分隔符(分隔标记的字符)集。
StringTokenizer
的实例有两种行为方式,这取决于它在创建时使用的
returnDelims
标志的值是 true
还是 false
:
- 如果标志为
false
,则分隔符字符用来分隔标记。标记是连续字符(不是分隔符)的最大序列。 - 如果标志为
true
,则认为那些分隔符字符本身即为标记。因此标记要么是一个分隔符字符,要么是那些连续字符(不是分隔符)的最大序列。
StringTokenizer 对象在内部维护字符串中要被标记的当前位置。某些操作将此当前位置移至已处理的字符后。
通过截取字符串的一个子串来返回标记,该字符串用于创建 StringTokenizer 对象。
下面是一个使用 tokenizer 的实例。代码如下:
StringTokenizer st = new StringTokenizer("this is a test"); while (st.hasMoreTokens()) { System.out.println(st.nextToken()); }
输出以下字符串:
this is a test
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
- 另请参见:
StreamTokenizer
构造方法摘要 | |
---|---|
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()
==============================================================================
本博客已经废弃,不在维护。新博客地址:http://wenchao.ren
我喜欢程序员,他们单纯、固执、容易体会到成就感;面对压力,能够挑灯夜战不眠不休;面对困难,能够迎难而上挑战自我。他
们也会感到困惑与傍徨,但每个程序员的心中都有一个比尔盖茨或是乔布斯的梦想“用智慧开创属于自己的事业”。我想说的是,其
实我是一个程序员
==============================================================================