2011-06-05 44 views
14

我正在使用扫描程序进行输入并希望将其分成块。我希望它使用整个单词分隔符来分割它。所以,现在我有:Java - 在扫描仪中使用多个分隔符

Scanner scanner = new Scanner("1 imported bottle of perfume at 27.99"); 
    scanner.useDelimiter("\\sdelimitOne\\s"); 

因此,与输入 “字字delimitOne字字delimitTwo逐字逐句” 我得到的输出:

word word 
word word delimitTwo word word 

我希望

scanner.useDelimiter("\\sdelimitOne\\s\\sdelimitTwo\\s"); 

可能会奏效,但唉,不。

如何去实现以下的输出:

word word 
word word 
word word 

回答

18

维基百科:

| :选择(又名交替或设置联合)运算符匹配运算符之前的表达式或表达式之后的表达式。例如,abc | def匹配“abc”或“def”。

so,scanner.useDelimiter("\\sdelimitOne\\s|\\sdelimitTwo\\s");是你需要的。

+1

啊太棒了,我希望这会是一些这样的愚蠢的遗漏。非常感谢。 – 2011-06-05 18:50:53

+1

我通过用'\\ s'替换'\\ s *'来解决问题。 – 2012-08-14 10:01:24