2011-06-05 41 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