StringTokenizer类详解

StringTokenizer类是一个用来对String进行分词编辑的应用类,类似于Java String 类中的split函数.

构造函数

StringTokenizer提供了三个构造参数

public StringTokenizer(String str)
public StringTokenizer(String str, String delim)
public StringTokenizer(String str, String delim, boolean returnDelims)

其中,前两个构造函数直接调用第三个构造函数创建一个StringTokenizer实例.参数str代表要分割的字符串,delim为一个分割标识符集合,returnDelims表示是否返回分割标识符.在没有指定分割标识符的情况下,默认是"\t\n\r\f".

常用方法

首先,先理解本类中Token的概念.StringTokenizer类的作用就是对给定的字符串进行分割,而分割后的元素就是Token.比如"This is a java programmer!“这个字符串按照空格来分割,那个分割后就是"This”,“is”,“a”,“java”,"programmer!"五个字符串,也就是5个Token.

现在来看一下常用的方法

public boolean hasMoreTokens()//是否还有Token
public String nextToken()//下一个Token
public String nextToken(String delim)//根据分隔符获取下一个Token
public int countTokens()//Token的总个数

代码示例

demo1

本例演示了使用默认分隔符对字符串进行分割以及分割后的处理

String content = "Both sides reached consensus on market access and the text of free trade agreement, " +
                "making a substantive progress and a basic completion of the FTA negotiation.";
StringTokenizer st = new StringTokenizer(content);
System.out.println("分割后Token的个数-->"+st.countTokens());
int i=1;
while(st.hasMoreElements()){
    String token = st.nextToken();
    System.out.print(i+"."+token+" ");
    i++;
}

输出内容如下:

分割后Token的个数-->26
1.Both 2.sides 3.reached 4.consensus 5.on 6.market 7.access 8.and 9.the 10.text 11.of 12.free 13.trade 14.agreement, 15.making 16.a 17.substantive 18.progress 19.and 20.a 21.basic 22.completion 23.of 24.the 25.FTA 26.negotiation. 

demo2

使用指定的分隔符分割字符串

String content = "https://blog.jetbrains.com/idea/2009/04/global-unused-declaration-inspection/";
	StringTokenizer st = new StringTokenizer(content,"/");
	System.out.println("分割后Token的个数-->" + st.countTokens());
	int i = 1;
	while (st.hasMoreElements()) {
		String token = st.nextToken();
		System.out.print(i + "." + token + " ");
		i++;
	}
}

输出内容如下:

分割后Token的个数-->6
1.https: 2.blog.jetbrains.com 3.idea 4.2009 5.04 6.global-unused-declaration-inspection 

demo3

String content = "https://blog.jetbrains.com/idea/2009/04/global-unused-declaration-inspection/";
StringTokenizer st = new StringTokenizer(content,"/",true);
System.out.println("分割后Token的个数-->" + st.countTokens());
int i = 1;
while (st.hasMoreElements()) {
    String token = st.nextToken();
    System.out.print(i + "." + token + " ");
    i++;
}

输出内容:

分割后Token的个数-->13
1.https: 2./ 3./ 4.blog.jetbrains.com 5./ 6.idea 7./ 8.2009 9./ 10.04 11./ 12.global-unused-declaration-inspection 13./ 

参考文章:http://blog.csdn.net/riyunzhu/article/details/7989145

你可能感兴趣的:(java基础)