遇到java读取使用任意符号作为分隔符的字符串的问题,找到了解决方案:
字符串tokenizer类
Java语言在java.util包中提供了专门用于分析字符串的类StringTokenizer。 这个类将字符串分解为独立使用的单词,可以称为语言符号。 语言符号之间用分隔符(delim )或典型的空格字符(如空格、制表符和换行符)分隔。 其他字符也可以同样设置为分隔符。 StringTokenizer类的构建方法和说明如表15-6所示。
表15-6 StringTokenizer类的构建方法和说明
构建方法
说明
字符串训练器(stringstr )。
创建字符串str的字符串分析器。 使用默认分隔符,例如空格字符、换行符、换行符或制表符符号。 如果有多个连续的空白字符,则视为一个
字符串训练器(stringstr,String delim ) )。
为字符串str创建字符串分析器,并使用字符串delim作为分隔符
StringTokenizer类的主要方法和功能如表15-7所示。
表15-7字符串tokenizer类的主要方法和功能
方法
功能
字符串下一个令牌(
用于逐个获取字符串中的语言符号(单词)
boolean hasMoreTokens (
用于确定要分析的字符串中是否还有语言符号,如果有,则返回true;相反,返回false
int countTokens ()
要分析的字符串总共包含多少个语言符号
代码15-7显示了使用StringTokenizer类、类内方法的示例。 程序分析两个字符串,计算字符串中单词的数量。
代码15-7使用string tokenizer类StringTokenizerDemo.java
import java.util.*;
公共类stringtokenizerdemo
{
publicstaticvoidmain (字符串[ ] args ) )。
{
String str1='Hello world! This is Java code,stringTokenizer Demo.';
声明并初始化//字符串str1
stringstr2=' howtousestringtokenizer? StringTokenizer?' ;
声明并初始化//字符串str2
stringtokenizerstrt1=new string tokenizer (str 1,',) );
为StringTokenizer类创建对象strT1并构建字符串str1的分析器
//空白字符、'、'、'.'和'!' 作为分隔符
stringtokenizerstrt2=new string tokenizer (str 2,'? );
为StringTokenizer类创建对象strT2并构建字符串str2的分析器
//空白字符和'? 作为分隔符
int num1=strT1.countTokens (;
获取//字符串str1中语言符号的数量
int num2=strT2.countTokens (;
获取//字符串str2中语言符号的数量
system.out.println (str1has ' num1' words.they are : );
while(strt1.hasmoretokens ) )
使用//循环获取字符串str1的下一个语言符号并输出
String str=strT1.nextToken (;
system.out.print(''str'";
}
system.out.println ((nstr2has ' num2' words.they are : ) );
while(strt2.hasmoretokens ) )
使用//循环获取字符串str2的下一个语言符号并输出
String str=strT2.nextToken (;
system.out.print(''str'";
}
}
}