2012-01-19 3 views
1

У меня есть строка, которая должна быть разделена на "." (точка) и " " (космос). Я пробовал:Как расколоть строку, используя регулярное выражение?

s.split("[\\s\\.]") 

, но он не работает, так как он не расщепляется эту строку нормально - "123 456 . 11323 1".

Как изменить свое регулярное выражение?

+0

Что у вас получилось? –

+1

Если бы вы могли привести пример ввода/вывода, это поставило бы вопрос немного яснее. –

ответ

1

Вы получите много пробелов, если вы разделите только на один символ.

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

будет производить «123», «456», «11323», «1».

+ заставляет его обрабатывать любые пробелы и точки в виде единственного разрыва вместо того, чтобы возвращать строку между соседними пространствами и точками.

Вы все равно можете получить пустые строки с обоих концов ваших результатов, так как данный " 123" будет разделен между началом строки и «123».

2

Просто используйте "[\\s.]+" как регулярное выражение.

3

Я думаю, что вы хотите, это:

s.split("[\\s\\.]+"); 

Обратите внимание на +. Кажется, вы не хотите делиться на каждое (!) Появление пробелов или точек. Вы хотите совместить все длины комбинаций пробелов или точек. Вот почему вы должны жадно сочетать как можно больше этих символов.