2013-07-01 2 views
1

Я хав строки (список имен авторов для книги), которая имеет следующий формат:Разбивает строку в Java, где разделитель слово

author_name1, author_name2, author_name3 и author_name4

Как я могу разобрать строку, чтобы получить список имен авторов в виде массива String. (Разделители в этом случае - , и слово and. Я не уверен, как я могу разделить строку на основе этих разделителей (так как разделитель здесь - это слово, а не один символ).

+2

http://stackoverflow.com/questions/5993779/java-use-split-with-multiple-delimiters – rags

ответ

7

Вы можете использовать myString.split(",|and") он будет делать то, что вы хотите :)

7

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

"someString".split("(,|and)") 
+1

Я не думаю, вам нужны скобки, не так ли? – C4stor

+0

@ C4stor, да, на самом деле это не имеет значения. Я использую круглые скобки. –

+0

Скобки не изменяют код, но более простой код обычно предпочтительнее для читаемости (даже если в этом случае есть небольшая разница). – Dukeling

2

Try:

yourString.split("\\s*(,|and)\\s*") 

\\s* означает ноль или более пробельных символов (поэтому окружающие пространства не включены в ваш раскол).

(,|and), или and.

Test (Arrays.toString) печатает массив в форме - [element1, element2, ..., elementN]).

Java regex reference.

0

Я думаю, что вам нужно включить регулярное выражение оператора ИЛИ:

String[]tokens = someString.split(",|and");