当前位置: 移动技术网 > IT编程>开发语言>Java > Java实用包学习笔记(2)—— StringTokenizer类

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

2020年07月17日  | 移动技术网IT编程  | 我要评论
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。
构造函数

常用方法

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

在这里插入图片描述
三种构造方法 + 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());           
    }
}

结果:
在这里插入图片描述

与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

如您对本文有疑问或者有任何想说的,请 点击进行留言回复,万千网友为您解惑!

相关文章:

验证码:
移动技术网