Java 实例 - 字符串分隔(StringTokenizer)
Java 中我们可以使用 StringTokennizer 设置不同分隔符来分隔字符串,默认的分隔符是:空格、制表符(\t)、换行符(\n)、回车符(\r)。
以下实例演示了 StringTokennizer 使用空格和等号来分隔字符串:
更多 StringTokennizer 介绍可以查看:Java StringTokenizer 类使用方法
JavaStringSplitEmp.java 文件
import java.util.StringTokenizer;
public class Main {
public static void main(String[] args) {
String str = "This is String , split by StringTokenizer, created by baidu";
StringTokenizer st = new StringTokenizer(str);
System.out.println("----- 通过空格分隔 ------");
while (st.hasMoreElements()) {
System.out.println(st.nextElement());
}
System.out.println("----- 通过逗号分隔 ------");
StringTokenizer st2 = new StringTokenizer(str, ",");
while (st2.hasMoreElements()) {
System.out.println(st2.nextElement());
}
}
}
输出结果:
- ----- 通过空格分隔 ------
- This
- is
- String
- ,
- split
- by
- StringTokenizer,
- created
- by
- baidu
- ----- 通过逗号分隔 ------
- This is String
- split by StringTokenizer
- created by baidu
StringTokenizer和split方法还有一个很重要的区别就是:前者会以给定分割字符串的每个字符进行分割,而后者是以整个字符串进行切割。借鉴上面的代码:
import java.util.StringTokenizer;
public class Main {
public static void main(String[] args) {
String str = "Hello,this is a test";
System.out.println("使用split分割str");
System.out.print("将str从字符串 el 处分割:");
for(String temp:str.split("el")){
System.out.print(temp+" ");
}
System.out.println();
System.out.println("------------------------------------");
System.out.println("使用StringTokenizer类进行分割");
StringTokenizer s = new StringTokenizer(str, "el");
System.out.print("将str从字符e和l处分割:");
while(s.hasMoreElements()){
System.out.print(s.nextElement()+" ");
}
System.out.println();
}
}
执行代码,结果如下:
- 使用split分割str
- 将str从字符串 el 处分割:H lo,this is a test
- ------------------------------------
- 使用StringTokenizer类进行分割
- 将str从字符e和l处分割:H o,this is a t st
- 不难看出,分割字符串同样是“el”,但是结果却不一样,StringTokenizer分割原理是:只要有字符e和l的地方都进行切割,而split是只在字符串el的地方切割。
所以,基于这样的原理,StringTokenizer中的分割字符串一般是不重复的字符,例如:“aa”。