类 StringTokenizer

 

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 是出于兼容性的原因而被保留的遗留类(虽然在新代码中并不鼓励使用它)。建议所有寻求此功能的人使用 Stringsplit 方法或 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。
方法摘要
intcountTokens()
计算在生成异常之前可以调用此 tokenizer 的 nextToken 方法的次数。
booleanhasMoreElements()
返回与 hasMoreTokens 方法相同的值。
booleanhasMoreTokens()
测试此 tokenizer 的字符串中是否还有更多的可用标记。
ObjectnextElement()
除了其声明返回值是 Object 而不是 String 之外,它返回与 nextToken 方法相同的值。
StringnextToken()
返回此 string tokenizer 的下一个标记。
StringnextToken(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,则跳过分隔符,只是用作标记之间的分隔符。

注意,如果 delimnull,则此构造方法不抛出异常。但是,尝试对得到的 StringTokenizer 调用其他方法则可能抛出 NullPointerException

 

参数:
str - 要解析的字符串。
delim - 分隔符。
returnDelims - 指示是否将分隔符作为标记返回的标志。
抛出:
NullPointerException - 如果 str 为 null

StringTokenizer

public StringTokenizer(String str,
                       String delim)
为指定字符串构造一个 string tokenizer。 delim 参数中的字符都是分隔标记的分隔符。分隔符字符本身不作为标记。

注意,如果 delimnull,则此构造方法不抛出异常。但是,尝试对得到的 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()
### 回答1: Java中的StringTokenizer是一个用于分解字符串的工具。它允许您将一个字符串分解成多个标记(tokens),并且可以指定分隔符。 StringTokenizer的构造函数有多个重载形式,其中最常用的是: public StringTokenizer(String str, String delim) 其中,str是要分解的字符串,delim是分隔符。如果不指定分隔符,则默认使用空格、制表符、换行符等空白字符作为分隔符。 StringTokenizer有三个主要的方法: 1. hasMoreTokens():判断是否还有更多的标记。 2. nextToken():返回下一个标记。 3. countTokens():返回剩余的标记数。 使用StringTokenizer可以方便地对字符串进行分解和处理,特别是在需要处理大量文本数据时,它可以提高程序的效率。 ### 回答2: java stringtokenizer是一个基于字符串分隔符的分词器。一个字符串可以有多个分隔符,而这些分隔符可以是不止一个字符的字符串。它允许程序员按照指定的分隔符对给定的字符串进行分割,返回一个分割后的字符串数组或逐个返回分隔符连接的标记。Java示例中常用的分隔符是空格字符、逗号和冒号。 使用java stringtokenizer,程序员可以轻松处理字符串,将其分解成若干单词或子字符串。相对于截取字符串的方式,它具有更明确、更灵活、更高效以及更容易调试的特点。 这个通常以两个参数的构造函数来调用。第一个参数是要分解的字符串,第二个参数是包含要用作分隔符的字符的字符串。在构造函数中,程序员可以选择在分割后返回空白标记,并选择将分隔符作为标记包含在返回的数组或逐个返回的标记中。 如果不使用Java stringtokenizer,程序员仍可以使用String和它所包含的substring()方法和indexOf()方法来完成对字符串的分割,但java stringtokenizer提供了一种更方便和容易使用的方式来处理字符串。 在java中,需要注意的是,java stringtokenizer在多线程环境下并不是线程安全的。如果多个线程同时使用同一个stringtokenizer实例,则可能会导致不可预期的结果。因此,建议在多线程环境下使用java.util.Scanner来进行字符串分割。 ### 回答3: java中的StringTokenizer是一个用于将字符串分解为若干个标记的工具。它可以将一个字符串根据给定的分隔符分解成多个字符串,也可以将一个字符串根据空格、制表符或换行符等默认分隔符分解成多个字符串,起到了非常方便的作用。 StringTokenizer的主要方法有三个,分别为构造方法、nextToken()和hasMoreTokens()。其中构造方法有两个重载形式,一种参数是(String str),另外一种参数是(String str,String delimiters),前者将使用默认的分隔符进行字符串分解,而后者则将指定的分隔符用于字符串分解。hasMoreTokens()方法用于判断是否还有标记未被分解,nextToken()方法用于获取下一个标记内容。 使用StringTokenizer需要结合循环来实现整个字符串的分割,下面是一个使用默认分隔符进行字符串分割的示例代码: ``` String str = "I am a boy"; StringTokenizer st = new StringTokenizer(str); while(st.hasMoreTokens()){ System.out.println(st.nextToken()); } ``` 上述代码会输出以下内容: I am a boy 在使用StringTokenizer时,需要注意以下几点: 1. 如果字符串中存在多个连续分隔符,StringTokenizer默认将把它们视为一个分隔符,也就是会输出空内容的标记。如果不希望输出空内容的标记,可以使用hasMoreElements()方法代替hasMoreTokens()方法。 2. StringTokenizer属于遗留API,在Java 1.5之后推荐使用String.split()方法代替。 3. StringTokenizer是线程不安全的,如果希望在多线程环境下使用,需要做好同步处理。 Java中的StringTokenizer可以快速地将字符串按照分隔符进行拆分,并且使用起来也非常简单。在一些字符串操作中,StringTokenizer也极为实用。不过,需要注意的是,由于StringTokenizer是一个遗留的API,使用时需要注意它的一些限制和安全性问题。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值