2012-02-09 56 views
0

如何检查一个字符串是否有多于一个连续的空格。 像:如何检查一个字符串是否有连续的空格

I support Global Warming 

返回true,但:

I support  Global Warming 

返回false。

+1

所以基本上你想检查一个字符串是否在字符串中的任何地方有两个连续的空格? – 2012-02-09 18:12:54

+0

我将你的问题更新为“连续空白”,我认为这就是你所要求的。 (第一个示例包含三个空格,每个单词之间有一个空格。)如果这不是您要求的,请编辑回来。 – 2012-02-09 18:13:27

回答

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 2012-02-09 18:15:49

+0

@Luciano:很难看,但是OP添加了尾随空白,因此很难判断他们是否打算将空白匹配或不匹配。 – 2012-02-09 18:21:10

+0

这实际上并不正确。 – Perception 2012-02-09 18:47:44

0

不知道你的意思,只是你原来的例子去。
(忽略如果误解)
原帖:
"Like: "I support Global Warming" returns true, but "I support Global Warming " returns false."

检查空白只在结尾:^(?!.*\s$)

检查空格两端:两头^(?!\s|.*\s$)

检查空白和要求非空白
in body :: ^(?=.*\S)(?!\s|.*\s$)

使用^(?=.*\S)(?!\s|.*\s$)
“我支持全球变暖” - 比赛(真)
“我支持全球变暖” - 不匹配(假)
“我支持全球变暖” - 不匹配(假)
“ “ - 不匹配(假)

相关问题