Ank*_*kur 125 java string whitespace
I want to check that Java String or character array is not just made up of whitespaces, using Java?
这是一个非常相似的问题,除了它的Javascript:
如何检查字符串是否包含字符和空格,而不仅仅是空格?
编辑:我删除了关于字母数字字符的位,所以它更有意义.
Car*_*icz 214
我能想到的最短的解决方案:
if (string.trim().length() > 0) ...
Run Code Online (Sandbox Code Playgroud)
这仅检查(非)空白区域.如果要检查特定的字符类,则需要使用match()
带有正则表达式的强大,例如:
if (string.matches(".*\\w.*")) ...
Run Code Online (Sandbox Code Playgroud)
...检查至少一个(ASCII)字母数字字符.
Chr*_*s J 55
我会使用Apache Commons Lang库.它有一个名为StringUtils的类,可用于各种String操作.要检查String是否不是所有空格,可以使用以下内容:
StringUtils.isBlank(<your string>)
Run Code Online (Sandbox Code Playgroud)
这是引用:StringUtils.isBlank
小智 47
比Carl Smotricz提到的略短:
!string.trim().isEmpty();
Run Code Online (Sandbox Code Playgroud)
dar*_*elf 20
StringUtils.isBlank(CharSequence)
Run Code Online (Sandbox Code Playgroud)
Pyv*_*ves 10
如果您使用的是Java 11或更新版本,新的isBlank
字符串方法将派上用场:
!s.isBlank();
Run Code Online (Sandbox Code Playgroud)
如果您使用的是Java 8、9 或 10,您可以构建一个简单的流来检查字符串是否仅是空格:
!s.chars().allMatch(Character::isWhitespace));
Run Code Online (Sandbox Code Playgroud)
除了不需要任何第三方库(例如 Apache Commons Lang)之外,这些解决方案还具有处理任何空白字符的优势,而不仅仅是' '
像trim
许多其他答案中建议的基于 - 的解决方案那样处理纯空格。您可以参考Javadocs以获取所有支持的空白类型的详尽列表。请注意,这两种情况也包括空字符串。
这个答案更多地集中在旁注“即具有至少一个字母数字字符”。除此之外,它不会给其他(早期的)解决方案添加太多内容,除非在字符串为 .NPE 的情况下不会对您造成伤害null
。
我们想要知道false
(1) s 是否为空null
或 (2) s 为空或 (3) s 仅包含白色字符。
public static boolean containsNonWhitespaceChar(String s) {
return !((s == null) || "".equals(s.trim()));
}
Run Code Online (Sandbox Code Playgroud)
if(target.matches("\\S"))
// then string contains at least one non-whitespace character
Run Code Online (Sandbox Code Playgroud)
注意使用反斜杠-S,意思是"非空白字符"
我打赌这是最简单的(也许是最快的?)解决方案.
如果您只检查空格而不关心 null 那么您可以使用 org.apache.commons.lang.StringUtils.isWhitespace(String str),
StringUtils.isWhitespace(String str);
(检查字符串是否仅包含空格。)
如果您还想检查 null(包括空格),那么
StringUtils.isBlank(String str);
Run Code Online (Sandbox Code Playgroud)