StringTokenizer类---使用分隔符作为标记分隔符

时间:2014-01-14 02:26:32

标签: java 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 )

如果我使用第一个带有line参数的StringToknenizer构造函数并编写一个示例程序,结果为"thisisasamplesentencehowmanytokensareinside?"和12个令牌。它返回整个句子,没有任何空格。我理解这是如何运作的。

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

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

1 个答案:

答案 0 :(得分:1)

如果没有指定分隔符,则

  

使用默认分隔符集,即“\ t \ n \ r \ n”:空格   字符,制表符,换行符,   回车字符和换页字符。

请参阅此链接。

http://docs.oracle.com/javase/7/docs/api/java/util/StringTokenizer.html#StringTokenizer(java.lang.String)

如果指定,则仅应用该分隔符。