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...
StringTokenizer类
位于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