欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Java实用包学习笔记(2)—— StringTokenizer类

程序员文章站 2022-07-10 21:43:27
StringTokenizer类构造函数常用方法与String.Split()的区别位于java.util包中的StringTokenizer类可以将字符串分解为组成它的语言符号(单词)。分隔字符串。构造函数StringTokenizer(String str) :使用默认的分隔符来分隔。java默认的分隔符是空格("")、制表符(\t)、换行符(\n)、回车符(\r)。StringTokenizer(String str, String delim) :提供一个指定的分隔符。StringTo...


位于java.util包中的StringTokenizer类可以将字符串分解为组成它的语言符号(单词)。
分隔字符串。

构造函数

  • StringTokenizer(String str) :使用默认的分隔符来分隔。java默认的分隔符是空格("")、制表符(\t)、换行符(\n)、回车符(\r)。
  • StringTokenizer(String str, String delim) :提供一个指定的分隔符。
  • StringTokenizer(String str, String delim, boolean returnDelims) :提供一个指定的分隔符,同时指定是否返回分隔符。

参数:
str - 要解析的字符串。
delim - 分隔符。
returnDelims - 指示是否将分隔符作为标记返回的标志。
抛出:
NullPointerException - 如果 str 为 null。
Java实用包学习笔记(2)——  StringTokenizer类

常用方法

  • int countTokens():返回nextToken方法被调用的次数,统计包含单词数
  • boolean hasMoreElements():判断枚举 (Enumeration) 对象中是否还有数据。
  • boolean hasMoreTokens():返回是否还有分隔符。
  • Object nextElement():返回枚举 (Enumeration) 对象的下一个元素。
  • String nextToken():返回从当前位置到下一个分隔符的字符串。
  • String nextToken(String delim):与 5 类似,以指定的分隔符返回结果。

Java实用包学习笔记(2)——  StringTokenizer类
三种构造方法 + countTokens() +hasMoreTokens() :

import java.util.StringTokenizer;
public class demoStringTokenizer
{
    public static void main(String args[])
    {
    	int o = 0;
        System.out.println("无参构造:");
        StringTokenizer st1 = new StringTokenizer("Hello Runoob How are you", " ");
        System.out.println("调用st1的次数: " + st1.countTokens());
        while (st1.hasMoreTokens())
            System.out.println(++o + ": " + st1.nextToken());
 
        int j = 0 ;
        System.out.println("有参构造:");
        StringTokenizer st2 = new StringTokenizer("JAVA : Code : String", " :");
        System.out.println("调用st2的次数: " + st2.countTokens());
        while (st2.hasMoreTokens()) 
            System.out.println(++j+ ": "+ st2.nextToken());
 
        int i = 0 ;
        System.out.println("有参构造 + 返回分隔符:");
        StringTokenizer st3 = new StringTokenizer("JAVA : Code : String", " :",  true);
        System.out.println("调用st3的次数: " + st3.countTokens());
        while (st3.hasMoreTokens())
        	System.out.println(++i + ": " + st3.nextToken());           
    }
}

结果:
Java实用包学习笔记(2)——  StringTokenizer类

与String.Split()的区别

StringTokenizer类与String.split()的区别
区别:
同样是分割字符串,对于String.split()方法来说,直接传入参数"|"、"+"、"*"、"$"、"\"不能正确的分割字符串,需先对它进行转义。而StringTokenizer类不需要。

原因
如果你把split和StringTokenizer作比较,区别的String.Split()使用正则表达式,而StringTokenizer的只是使用逐字分裂的字符。(这是第二节出现结果的原因。)所以,如果想更复杂的逻辑比如单个字符(如\ r \ n分割)来标记一个字符串,可以不使用StringTokenizer,而用String.Split() 。

兼容性问题:
首先在JAVA 5,6,7中,它不是deprecated的。StringTokenizer的是一个被保留,是因为兼容性的原因,不鼓励使用在新的代码中。建议使用split或java.util.regex包。

本文地址:https://blog.csdn.net/Artenis_/article/details/107356558