web-dev-qa-db-ja.com

Java-スキャナーで複数の区切り文字を使用する

私はスキャナーを使用して入力を取得し、うまくいけば、それをチャンクに分割しています。 Wordの区切り文字全体を使用して分割したい。だから今私は持っています:

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

したがって、「Word word delimitOne Word word delimitTwo Word word」と入力すると、次の出力が得られます。

Word word
Word word delimitTwo Word word

私は望んでいた

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

うまくいくかもしれませんが、残念ながらそうではありません。

次の出力を達成するにはどうすればよいですか。

Word word
Word word
Word word

15
R.B.

ウィキペディアから:

| :choice(別名交互または集合和集合)演算子は、演算子の前の式または後の式のいずれかに一致します。たとえば、abc | defは「abc」または「def」と一致します。

したがって、scanner.useDelimiter("\\sdelimitOne\\s|\\sdelimitTwo\\s");が必要です。

20
Rangi Lin