Разделение строки с использованием нескольких разделителей в java

Я работаю над алгоритмом интеллектуального анализа данных, где мне нужно токенизировать строку, используя несколько слов. У меня есть отдельный файл, содержащий все стоп-слова. Что мне нужно сделать, так это токенизировать входную строку любым словом (стоп-словом), работающим в качестве разделителя. Например.
Если файл содержит стоп-слова, такие как
a
это
и
из
, что

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

Рекурсивная проверка строки по всем стоп-словам займет очень много времени? Есть ли хороший метод для этого?


person Ansh    schedule 04.11.2012    source источник
comment
Регулярные выражения могут быть полезны.   -  person fonZ    schedule 05.11.2012
comment
Примечание: вы имеете в виду итеративно, а не рекурсивно   -  person stark    schedule 05.11.2012
comment
Я думаю так: code.google.com/p/guava-libraries/wiki/ StringsExplained может вам помочь. Но это не решит вашу проблему.   -  person user902691    schedule 05.11.2012


Ответы (1)


Построить регулярное выражение вида

delim1|delim2|delim3

затем используйте метод split() String, чтобы разделить текст по любому из разделителей.

Чтобы построить регулярное выражение, прочитайте каждый разделитель и передайте его в Pattern.quote перед добавлением к регулярному выражению, которое вы создаете. Это позволит вашим разделителям также использовать метасимволы регулярных выражений.

person Sergey Kalinichenko    schedule 04.11.2012