本文为牛旦教诲原创,头条首发,转发须注明来源和原文网址。

1.择要

在本文中,我们将先容些方法检讨Java中的空字符串(空的或空缺符串)。
我们有些措辞的原生方法以及几个库可用。

2.空与空缺(Empty&Blank)

对付知道字符串是否为空是很常见的问题。
这里定义空字符串:是指空的或是零长度的字符串。
如果一个字符串只有空缺字符,我们也称之为空字符串。

jspempty判断字符串Java中检讨空字符串null或空白的办法有几种 Java

对付Java而言,空缺字符串如空格、制表符等。
详细详情可以参考Java API(Character.isWhitespace: https://docs.oracle.com/javase/8/docs/api/java/lang/Character.html#isWhitespace-char-)。

3.空字符串

3.1. Java 6及以上版本

如果利用JDK在Java 6及以上,那么检讨字符串的最大略方法是便是子字符串的isEmpty

boolean isEmptyString(String string) { return string == null || string.isEmpty();}

如上为了确保null安全,我们在写判空函数时,添加了额外的null检讨。

3.2. Java 5及以下版本

字符串的isEmpty方法是随Java 6引入的。
对付Java 5及更低版本,我们可以利用字符串的length进行判断,自己写判空方法时,这样操作:

boolean isEmptyString(String string) { return string == null || string.length() == 0;}

从上代码可知,实际上,isEmpty 只是length的快捷办法。

4.空缺字符串

字符串的isEmptylength 可用于检讨是否为空字符串。
如果我们想想检讨是否为空缺字符串,可以利用字符串的trim方法达到目的。
trim方法在实行判空前,会删除开头结尾的空缺(空格)字符,我们可以这样来写空缺字符串剖断方法:

boolean isBlankString(String string) { return string == null || string.trim().isEmpty();}

确切地说,trim将删除Unicode代码小于或即是U+0020(「链接」)的所有前导和尾随字符。

我们知道String是不可变的,因此调用 trim 实际上不会改变底层字符串的。

5. Bean验证

检讨字符串的另一种方法是用正则表达式。
这对付Java Bean验证来说非常方便:

@Pattern(regexp = \公众\\A(?!\\s\\Z).+\公众)String someString;

给定的正则表达式会确保空字符串或空缺符串无效。

6.利用Apache Commons

如果可以添加依赖项,我们可以利用 Apache Commons Lang(Lang – Home)。
这是个很有用的Java工具。

如果我们利用Maven,我们须要添加的公地lang3依赖 于我们的POM:

<dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-lang3</artifactId></dependency>

除此之外,这个工具类库还供应了StringUtils 类,这个类带有像isEmpty,isBlank等方法:

StringUtils.isBlank(string)

此调用与我们自己的isBlankString方法相同。
它是null安全的并且还检讨空格。

7.利用Guava

另一很有名的类库是google的Guava所包含的字符串工具类。
从版本23.1开始,有两种Guava:androidjre
Android风格针对Android和Java 7,而JRE风格适用于Java 8。

如果我们不针对Android目标,我们可以将JRE风格的Guava添加到我们的pom中:

<dependency> <groupId>com.google.guava</groupId> <artifactId>guava</artifactId> <version>28.0-jre</version></dependency>

Guava的 Strings类附带了一个方法Strings.isNullOrEmpty:

Strings.isNullOrEmpty(string)

它检讨给定字符串是null还是空的,但不检讨全空缺字符串。

8.总结

以上为几种方法来检讨字符串是否为空。
常日想检讨字符串是否为空缺的,这意味着它只包含空格字符。

最方便的方法是利用Apache Commons Lang,它供应诸如StringUtils.isBlank之类的帮助类。
如果要坚持利用普通Java,我们可以将字符串原生的trimisEmptylength组合利用。
对付Bean验证,可以利用正则表达式。

好了。
比较根本的内容,就写到这里了 ,分享出去吧。