如何在String中找到空格?

jim*_*mmy 51 java string space

如何检查String是否包含空格字符,空格或"".如果可能,请提供Java示例.

例如: String = "test word";

Mar*_*ers 83

为了检查字符串是否包含空格,请使用a Matcher并调用它的find方法.

Pattern pattern = Pattern.compile("\\s");
Matcher matcher = pattern.matcher(s);
boolean found = matcher.find();
Run Code Online (Sandbox Code Playgroud)

如果要检查它是否只包含空格,那么您可以使用String.matches:

boolean isWhitespace = s.matches("^\\s*$");
Run Code Online (Sandbox Code Playgroud)

  • 空字符串是否包含空格?我认为 bool 应该是布尔值。 (2认同)

Sea*_*oyd 26

检查String是否包含至少一个空格字符:

public static boolean containsWhiteSpace(final String testCode){
    if(testCode != null){
        for(int i = 0; i < testCode.length(); i++){
            if(Character.isWhitespace(testCode.charAt(i))){
                return true;
            }
        }
    }
    return false;
}
Run Code Online (Sandbox Code Playgroud)

参考:


使用Guava库,它更简单:

return CharMatcher.WHITESPACE.matchesAnyOf(testCode);
Run Code Online (Sandbox Code Playgroud)

CharMatcher.WHITESPACE 在Unicode支持方面,它也更加彻底.

  • 我猜这段代码并不完全是unicode,因为:`这个方法无法处理补充字符.要支持所有Unicode字符(包括增补字符),请使用isWhitespace(int)方法 (2认同)
  • 我完全不知道,我提到它只是为了完整性。 (2认同)

Boz*_*zho 20

这将告诉您是否有任何空格:

通过循环:

for (char c : s.toCharArray()) {
    if (Character.isWhitespace(c)) {
       return true;
    }
}
Run Code Online (Sandbox Code Playgroud)

要么

s.matches(".*\\s+.*")
Run Code Online (Sandbox Code Playgroud)

StringUtils.isBlank(s)告诉你是否只有 whitepsaces.

  • 很好的综合答案(+1),但循环变量可以在不创建新的char数组的情况下完成(参见我的答案) (2认同)

br2*_*000 9

使用Apache Commons StringUtils:

StringUtils.containsWhitespace(str)
Run Code Online (Sandbox Code Playgroud)