Java 实例 - 字符串分隔(StringTokenizer)

Java 中我们可以使用 StringTokennizer 设置不同分隔符来分隔字符串,默认的分隔符是:空格、制表符(\t)、换行符(\n)、回车符(\r)。

以下实例演示了 StringTokennizer 使用空格和等号来分隔字符串:

更多 StringTokennizer 介绍可以查看:Java StringTokenizer 类使用方法

JavaStringSplitEmp.java 文件

  1. import java.util.StringTokenizer;
  2. public class Main {
  3. public static void main(String[] args) {
  4. String str = "This is String , split by StringTokenizer, created by baidu";
  5. StringTokenizer st = new StringTokenizer(str);
  6. System.out.println("----- 通过空格分隔 ------");
  7. while (st.hasMoreElements()) {
  8. System.out.println(st.nextElement());
  9. }
  10. System.out.println("----- 通过逗号分隔 ------");
  11. StringTokenizer st2 = new StringTokenizer(str, ",");
  12. while (st2.hasMoreElements()) {
  13. System.out.println(st2.nextElement());
  14. }
  15. }
  16. }

输出结果:

  1. ----- 通过空格分隔 ------
  2. This
  3. is
  4. String
  5. ,
  6. split
  7. by
  8. StringTokenizer,
  9. created
  10. by
  11. baidu
  12. ----- 通过逗号分隔 ------
  13. This is String
  14. split by StringTokenizer
  15. created by baidu
  16.  

StringTokenizer和split方法还有一个很重要的区别就是:前者会以给定分割字符串的每个字符进行分割,而后者是以整个字符串进行切割。借鉴上面的代码:

  1. import java.util.StringTokenizer;
  2. public class Main {
  3. public static void main(String[] args) {
  4. String str = "Hello,this is a test";
  5. System.out.println("使用split分割str");
  6. System.out.print("将str从字符串 el 处分割:");
  7. for(String temp:str.split("el")){
  8. System.out.print(temp+" ");
  9. }
  10. System.out.println();
  11. System.out.println("------------------------------------");
  12. System.out.println("使用StringTokenizer类进行分割");
  13. StringTokenizer s = new StringTokenizer(str, "el");
  14. System.out.print("将str从字符e和l处分割:");
  15. while(s.hasMoreElements()){
  16. System.out.print(s.nextElement()+" ");
  17. }
  18. System.out.println();
  19. }
  20. }

执行代码,结果如下:

  1. 使用split分割str
  2. str从字符串 el 处分割:H lo,this is a test
  3. ------------------------------------
  4. 使用StringTokenizer类进行分割
  5. str从字符el处分割:H o,this is a t st
  6. 不难看出,分割字符串同样是“el”,但是结果却不一样,StringTokenizer分割原理是:只要有字符el的地方都进行切割,而split是只在字符串el的地方切割。

所以,基于这样的原理,StringTokenizer中的分割字符串一般是不重复的字符,例如:“aa”。