关于StringTokenizer的构造方法的使用
public StringTokenizer(String str,
String delim)
查了文档,大概的明白了具体的意思,可是后面的delim的参数有一点和我的程序对不上
我的程序是:
import java.util.StringTokenizer;
public class TestStringToken
{
public static void main(String [] args)
{
int n=0;
String str= "A String constructor cannot be passed variables of type:@.char arrays.@b.int arrays.@c. byte arrays.@d.Strings and StringBuffers. ";
StringTokenizer str1=new StringTokenizer(str, ",@.: "); //具体是这句不太明白
System.out.println( "字符串中单词 ");
while(str1.hasMoreTokens())
{
n++;
System.out.print( "\t "+str1.nextToken());
}
System.out.println( "\n字符串中共有单词:: "+n);
}
}
得出的结果是:
字符串中单词
A String constructor cannot be passed variables of type char arrays
b int arrays c byte arrays d Strings and StringBuffer
s
字符串中共有单词::8
我就是不明白我所标明的那一句StringTokenizer str1=new StringTokenizer(str, ",@ .: "); 关于后面的分隔符是不是都可以将其字符串分开,可是结果并不像预料的那样阿,我把后面的第二个参数改了一下,把多字符改为了 "@ ",于是结果是:
字符串中单词
A String constructor cannot be passed variables of type: .char arrays. b.int arrays. c. byte arrays. d.Strings and StringBuffers.
字符串中共有单词::5
这样的结果都是用@分开的,很明显。
请高手帮忙上边的那个多分隔符是怎样解释的,如何对字符串进行分割的,谢谢了,万分感激
------解决方案--------------------,@.: 每一个都是分割符,从字符串中把这几个字符全拿去剩下的就是分割的结果,从打印的内容也很容易看出:
1:A String constructor cannot be passed variables of type
2:char arrays
3:b
4:int arrays
5:c
6:byte arrays
7:d
8:Strings and StringBuffers
------解决方案--------------------你的第一种例子的分隔符有4个:,@.:
所以会分割8个子字符串
你的第二种例子的分隔符只有1个:@
所以只会分割出5个子字符串,其他的几个都不是分隔符
------解决方案--------------------已经分开了,只是打印出来看着他们之间好象没有\t,你换成\n试试