TA的每日心情 | 开心 2021-3-12 23:18 |
---|
签到天数: 2 天 [LV.1]初来乍到
|
有时我们需要分析字符串并将字符串分解成可被独立使用的单词,这些单词叫做语言符号。
例如,对于字符串“We are students”,如果我们把空格作为该字符串的分隔符,那么该字符串有3个单词,语言符号。
而对于字符串“We ,are,student”如果我们把逗号作为了该字符串的分隔符,那么该字符串有3个单词,语言符号。
而对于字符串“1/8+3/8”如果我们把/+-三个字符作为分隔符,并且分隔符号也作为单词返回,那么该字符串有7个单词,语言符号。
当我们分析一个字符串并将字符串分解成可被独立使用的单词时,方法之一是可以使用java.util包中的StringTokenizer类,
StringTokenizer 存在于 java.util 包中,是一个用来分隔String的应用类,相当于VB的split函数。
1.构造函数
public StringTokenizer(String str)
public StringTokenizer(String str, String delim)
public StringTokenizer(String str, String delim, boolean returnDelims)
第一个参数就是要分隔的String,第二个是分隔字符集合,第三个参数表示分隔符号是否作为单词返回,
如果不指定分隔字符,默认的是:”\t\n\r\f”
2.核心方法
public boolean hasMoreTokens()
public String nextToken()
public String nextToken(String delim)
public int countTokens()
返回分隔字符的时候也可以指定分割符,而且以后都是采用最后一次指定的分隔符号。
3.其它方法
public boolean hasMoreElements()
public Object nextElement()
这个类实现了Enumeration接口,所以多了这么两个方法。
下面我们来实践一下,提取一行输入中的操作数和操作符(可以存入到字符串数组中)
import java.util.StringTokenizer;
public class Example
{
public static void main(String args[])
{
String s="1/8+3/8";
StringTokenizer fenxi=new StringTokenizer(s,"/+-",true); //+-和/做分隔符
int number=fenxi.countTokens();
while(fenxi.hasMoreTokens())
{
String str=fenxi.nextToken();
System.out.println(str);
System.out.println("还剩"+fenxi.countTokens()+"个单词");
}
System.out.println("s共有单词"+number+"个");
}
}
运行结果:
C:\java>java Example
1
还剩6个单词
/
还剩5个单词
8
还剩4个单词
+
还剩3个单词
3
还剩2个单词
/
还剩1个单词
8
还剩0个单词
s共有单词7个 |
|