2014-01-14 73 views
1

我无法理解如何使用具有多个参数的构造函数在StringTokenizer类中计数标记。
StringTokenizer类---使用分隔符作为标记分隔符

String line = ("This is a sample sentence, how many tokens are inside this sentence?") ; 

new StringTokenizer(String str) 
new StringTokenizer(String str, String delims) 

如果我使用第一StringToknenizer构造与line一个参数和写入的示例程序的结果是"thisisasamplesentencehowmanytokensareinside?"和12标记。它返回整个句子,没有任何空格。我明白这是如何工作的。

如果使用带有两个参数的第二个构造函数,(line, ",")我的测试程序将得到"this is a test sentence how many tokens are in this sentence? ",每个单词都有空格,但没有逗号和只有2个标记。我认为它应该计算空格和逗号作为标记分隔符,但它将逗号前面的所有内容统计为1个标记,将逗号后的所有内容统计为1个标记。这部分令我困惑。

我的问题是我不明白如何使用分隔符使用带有多个参数(例如(行,“,”)的构造函数分隔符。我错过了什么或误解了什么?

+0

您是否尝试过打印每个令牌? –

+0

@ElliottFrisch是的,但我仍然有点困惑 –

+1

嗯,空格和逗号将分隔符设置为任何空格和逗号。默认是记录[这里](http://docs.oracle.com/javase/7/docs/api/java/util/StringTokenizer.html#StringTokenizer(java.lang.String))。 –

回答