2013-11-14 3 views
5

Прямо сейчас мой код только отделяет слова пробелом, но я также хочу отделить «.». и тоже. Вот мой текущий код:Использование нескольких разделителей для .split в Java

for (String words : input.split("\\s+")) 

Например, если пользователь ввел «хлеб, молоко, яйца» или «Гм ... awkss» Было бы считать, что одно слово, и я хочу каждое слово, чтобы быть это собственное слово.

И пока я здесь, я не могу получить

input.isAlpha() 

работать либо.

+0

Канонический список регулярных выражений, которые вы можете использовать, находится по адресу http://docs.oracle.com/javase/7/docs/api/java/util/regex/Pattern.html - это не учебник, но есть много других учебных пособий. –

+0

'isAlpha' - C. В Java это называется' isLetter'. Прочитайте http://www.java2s.com/Tutorial/Java/0120__Development/ChecksiftheStringcontainsonlyunicodeletters.htm –

+0

Я хочу использовать isAlpha (или что-то еще для java) для строки, а не для char. Мой компилятор говорит мне, что isLetter предназначен только для символов. Спасибо за ссылку btw. – Spork

ответ

8

Вы можете разделить с помощью этого регулярного выражения

input.split("\\s+|.+|,+") 

или просто:

input.split("[\\s.,]+") 

Помните, что a dot doesn't have to be escaped inside square brackets

+0

Любопытно, почему \\ s + регулярное выражение для пробелов, \\. один за период, но для запятой вам нужна только запятая? – Spork

+0

Период является специальным символом в регулярном выражении; '\\' - это escape-последовательность. Как я уже сказал, попробуйте узнать больше о регулярном выражении. Найдите учебник или sth. – Dariusz

+0

Любые предложения? – Spork

5

Используйте кронштейны

for (String words : input.split("[\\s.,]+")) 

Скобки используются, когда вы хотите какой-либо из символов в скобках, то + означает, что символы могут быть объединены один или несколько раз. для создания одного единственного разделителя, то есть space and period или comma and space.

0

Вы можете использовать этот

mySring = "abc==abc++abc==bc++abc"; 
String[] splitString = myString.split("\\W+"); 

Регулярное выражение \ W + ---> будет разделять строку на основе символа, отличного от слова.

Смежные вопросы