2012-02-09 7 views
0

Как проверить, имеет ли строка более одного последовательного пробела. как:Как проверить, имеет ли строка последовательные пробелы

I support Global Warming 

возвращает истину, но:

I support  Global Warming 

возвращает ложь.

+1

Итак, в основном вы хотите проверить, имеет ли строка два последовательных пробела в любой строке? –

+0

Я обновил ваш вопрос как «последовательный пробел», который, я думаю, вы спрашиваете. (Первый пример содержит три пробела, по одному между каждым словом.) Если это не то, о чем вы просите, отредактируйте его обратно. –

ответ

4

Это будет охватывать любые пробелы:

Pattern pattern = Pattern.compile("\\p{javaWhitespace}{2,}"); 
Matcher m = pattern.matcher("I Support Foo Bar"); 
if (m.find()) { 
    System.out.println("More than one space found"); 
} 
4
boolean containsMultipleWhitespaces = str.contains(" "); 
+0

Может быть, не то, что пользователь запрашивает, но я бы сначала обрезал строку, чтобы избежать ложных срабатываний с ведущими или конечными пробелами. – Luciano

+0

@ Luciano: трудно видеть, но OP добавил конечные пробелы, поэтому трудно сказать, будут ли они соответствовать завершающему пробелу, который будет согласован или нет. –

+0

На самом деле это не так. – Perception

0

Не уверены в своем значении, просто идти по исходному примеру.
(просто игнорировать, если его неправильно)
Оригинал цитаты:
"Like: "I support Global Warming" returns true, but "I support Global Warming " returns false."

проверки пропуски на только в конце: ^(?!.*\s$)

проверки пробельных на обоих концах: ^(?!\s|.*\s$)

проверка пробельные на обоих концах и требуют не-пробелов
в теле:: ^(?=.*\S)(?!\s|.*\s$)

Использование ^(?=.*\S)(?!\s|.*\s$)
«Я поддерживаю глобальное потепление» - матчи (истинные)
«Я болею глобальное потепление» - не соответствует (ложь)
«Я поддерживаю глобальное потепление» - не соответствует (ложь)
" "- не соответствует (false)

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