Java - Использование нескольких разделителей в сканере - PullRequest
15 голосов
/ 05 июня 2011

Я использую сканер для ввода и, надеюсь, разбить его на куски.Я хочу, чтобы разделить его, используя целые разделители слов.Итак, сейчас у меня есть:

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

Итак, с помощью ввода «слово слово 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

?

1 Ответ

20 голосов
/ 05 июня 2011

Из википедии:

|: Оператор выбора (или чередование или объединение множеств) соответствует либо выражению до, либо выражению после оператора.Например, abc | def соответствует «abc» или «def».

, поэтому scanner.useDelimiter("\\sdelimitOne\\s|\\sdelimitTwo\\s"); - это то, что вам нужно.

...