检查 java 中包含 space 的字符串的排列

Checking for permutations of a space-containing string in java

我如何检查以确保字符串不包含 Java 中 space 字符的任何排列?

即,我想检查我的字符串是否等于 """ "" "

我不想只检查我的字符串是否包含 space,因为如果我有一个字符串 "My code works",则不应对其进行解析。我只想检查仅包含 space 且不包含任何字母或其他字符的字符串。

这可以在单个 if 语句中完成吗?

String#matches() 与模式 \s* 结合使用。此模式将匹配空字符串或任意数量的连续空格。

String input = "   ";
if (input.matches("\s*")) {
    System.out.println("match");
}

这最适合我:

for (i = 0; i < string.length(); i++) {
    string = string.get(i).replaceAll(" ", "");
}

if (string.equals("")) {
    //do something
}

如果可能,您也可以使用apache commons提供的StringUtils.isBlank(aString)

 Checks if a CharSequence is whitespace, empty ("") or null.

 StringUtils.isBlank(null)      = true
 StringUtils.isBlank("")        = true
 StringUtils.isBlank(" ")       = true
 StringUtils.isBlank("  ")      = true
 StringUtils.isBlank("bob")     = false
 StringUtils.isBlank("  bob  ") = false

另一种方式

if(input.trim().length() == 0) {
    ...
}