StringTokenizer是java.util包中的一个类用于语言符号的分析。例如,如果把空格做分隔符,字符串”we are learning Java programming”有5个单词。要分析出字符串中的单词,可用StringTokenizer类的构造方法,由给定的字符串构造一个StringTokenizer对象,StringTokenizer对象称作字符分析器。然后利用去一个单词方法nextToken(),结合循环,从字符串分析器中逐一取出单词。用hasMoreTokens()方法控制循环,只要字符串中还有语言符号,该方法就返回true,否则返回false。调用countTokens()方法能得到字符串分析器中一共有多少个单词。
1.StringTokenizer类的构造方法:
1)StringTokenizer(Stringstr)
为指定字符串构造一个 string tokenizer。tokenizer 使用默认的分隔符集 " \t\n\r\f",即:空白字符、制表符、换行符、回车符和换页符
2)StringTokenizer(Stringstr,String delim)
为指定字符串构造一个 string tokenizer。delim 参数中的字符都是分隔标记的分隔符。分隔符字符本身不作为标记。
3)StringTokenizer(Stringstr,String delim,Boolean returnDelims)
为指定字符串构造一个 string tokenizer。delim 参数中的所有字符都是分隔标记的分隔符。
2.常用方法
nextToken():逐个获取字符串分析器中的语言符号,每获取一个语言符号,字符串分析器中负责计数的变量值就自动减1,该计数变量的初始值等于字符串中的单词数目。
countTokens():获得计数变量的值。
HasMoreTokens():字符串分析器中是否还有语言符号,若有返回true,否则返回false。
其他方法:
nextElement():返回与 hasMoreTokens 方法相同的值。它的存在使得此类可以实现 Enumeration 接口。
2、方法。
说明:
1. 所有方法均为public;
2. 书写格式:[修饰符] <返回类型><方法名([参数列表])>
如:
static int parseInt(String s)表示:此方法(parseInt)为类方法(static),返回类型为(int),方法所需参数为String类型。
1. intcountTokens():返回nextToken方法被调用的次数。如果采用构造函数1和2,返回的就是分隔符数量(例2)。
2. boolean hasMoreTokens() :返回是否还有分隔符。
3. boolean hasMoreElements() :结果同2。
4. String nextToken():返回从当前位置到下一个分隔符的字符串。
5. Object nextElement() :结果同4。
6. String nextToken(String delim):与4类似,以指定的分隔符返回结果。
例如:
代码:
packagecom.itheima;
* 使用java.lang.StringTokenizer类,根据空格将字符串"张飞关于刘备诸葛亮"拆分成四个部分,根据“/”将
* H:/学习文件/概率论与数理统计,拆分成三个部分
*/
import java.util.*;
public class StringTokenizerDemo {
privatevoid demoA(){
StringTokenizerst=new StringTokenizer("张飞,关雨,刘备,诸葛亮",",");
intn=st.countTokens();
System.out.println("共有"+n+"个人物");
while(st.hasMoreTokens()){
Strings=st.nextToken();
System.out.println("分别是:"+s+"\t");
}
}
privatevoid demoB(){
StringTokenizerstk=new StringTokenizer("H:/学习文件/概率论与数理统计","/");
Vector<String>v=new Vector<String>();
while(stk.hasMoreTokens())
v.addElement(stk.nextToken());
for(intj=0;j<v.size();j++)
{
StringsPart=(String)v.elementAt(j);
System.out.println(sPart);
}
}
publicstatic void main(String args[]){
StringTokenizerDemoobj=new StringTokenizerDemo();
obj.demoA();
System.out.println("\n下面是一条绝对路径的拆分情况");
obj.demoB();
}
执行结果
共有4个人物
分别是 :张飞
分别是 :关雨
分别是 :刘备
分别是 :诸葛亮
下面是一条绝对路径的拆分情况
H:
学习文件
概率论与数理统计
}