StringTokenizer类是一个用来对String进行分词编辑的应用类,类似于Java String 类中的split函数. 构造函数 //StringTokenizer提供了三个构造参数 public StringTokenizer ( String str ) public StringTokenizer ( Str
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 hasMoreElements() // 返回与 hasMoreTokens方法相同的值。
public boolean hasMoreTokens() // 测试此令牌化程序的字符串是否有更多的令牌可用。
public Object nextElement() // 返回与 nextToken方法相同的值,但其声明的返回值为 Object而不是 String 。
public String nextToken() // 下一个Token
public String nextToken(String delim) // 根据分隔符获取下一个Token
public int countTokens() // Token的总个数
Demo1 —— 默认分隔符
public class demo01 {public static void main(String[] args) {
String str = "梧桐树荫了整条街 灯火穿透了她的叶 窗外夜风裹走时间 后退的景谁在流连 一个人开车去赴宴 右座有张烫金喜帖 新娘的名字好亲切 搞不好曾梦里出现 孤单坐进一桌陌生人里面 主持人在进行热场的环节 你和他含情脉脉对视了一眼 回忆陪我躲在角落没露面 当时的我想不到今天 错过的人回不到从前 当时的你静静坐在我的左手边 梧桐灯下是你静美的侧脸";
// 创建一个StringTokenizer对象
StringTokenizer tokenizer = new StringTokenizer(str);
int count = 1;
while (tokenizer.hasMoreTokens()){
String token = tokenizer.nextToken();
System.out.println(count+"."+token);
count++;
}
System.out.println("分割的总数为:"+(count-1));
}
}
Demo2 —— 自定义分隔符
public class demo02 {public static void main(String[] args) {
String str = "https://blog.csdn.net/qq_45797116?spm=1011.2124.3001.5343";
StringTokenizer tokenizer = new StringTokenizer(str,".");
int count = 1;
while (tokenizer.hasMoreTokens()){
System.out.println(count+"."+tokenizer.nextToken());
count++;
}
System.out.println("使用分隔符 . 后,共有"+(count-1)+"个。");
}
}
Demo3 —— 包含分隔符本身
public class demo03 {public static void main(String[] args) {
String str = "https://blog.***.net/qq_45797116?spm=1011.2124.3001.5343";
StringTokenizer tokenizer = new StringTokenizer(str,".",true);
int count = 1;
while (tokenizer.hasMoreTokens()){
System.out.println(count+"."+tokenizer.nextToken());
count++;
}
System.out.println("使用分隔符 . 后,共有"+(count-1)+"个。");
}
}