检查Java中的字符串是否为空或者为空
时间:2020-01-09 10:34:54 来源:igfitidea点击:
要检查Java中的String是否为null或者为空,可以使用以下选项之一。
- 从Java 6开始使用isEmpty()方法检查String是否为空。
- 使用Apache Commons Lang的StringUtils.isEmpty()方法。
- 从Java 11开始,还有isBlank()方法来检查String是否为空或者仅包含空格。
使用isEmpty()检查字符串为空还是为null
为了检查Java中String是否为空或者空,我们应该首先检查String是否为null,然后再检查它是否为空。如果使用或者条件(||),则如果第一部分本身为true,则不评估第二部分,因此,如果String本身为null,则不会在null字符串上调用isEmpty()方法。
例如
if(str == null || str.isEmpty())
如果String为null,则条件本身的第一部分评估为true,并且不检查第二部分。
public class StringEmpty {
public static void main(String[] args) {
String str1 = "A String";
String str2 = "";
// evaluates to false
if(isNullOrEmpty(str1)) {
System.out.println("String str1 is empty");
}
// evaluates to true
if(isNullOrEmpty(str2)) {
System.out.println("String str2 is empty");
}
// evaluates to true
if(isNotNullOrEmpty(str1)) {
System.out.println("String str1 is not empty");
}
// evaluates to false
if(isNotNullOrEmpty(str2)) {
System.out.println("String str2 is not empty");
}
}
// Method returns true if String is null or empty
private static boolean isNullOrEmpty(String str){
if(str == null || str.isEmpty())
return true;
return false;
}
// Method returns true if String is not null or empty
private static boolean isNotNullOrEmpty(String str){
if(str != null && !str.isEmpty())
return true;
return false;
}
}
输出:
String str2 is empty String str1 is not empty
在示例中,给出了两个方法,如果String为null或者为空,则第一个返回true;而如果字符串非null且不为空,则第二个方法返回true。
Apache Commons Lang StringUtils.isEmpty()方法
在Apache Commons Lang的StringUtils实用程序类中,有一个isEmpty()方法来检查String是否为空。此方法还会检查null字符串,因此我们无需进行null检查。
public class StringEmpty {
public static void main(String[] args) {
String str1 = "A String";
String str2 = null;
if(StringUtils.isEmpty(str1)) {
System.out.println("String str1 is empty");
}
if(StringUtils.isEmpty(str2)) {
System.out.println("String str2 is empty");
}
}
}
输出:
String str2 is empty
Java String isBlank()方法
Java 11及更高版本Java中的String类具有isBlank()方法,如果字符串为空或者仅包含空格,则返回true,否则返回false。
public class StringEmpty {
public static void main(String[] args) {
String str1 = "A String";
String str2 = " ";
// evaluates to false
if(isNullOrSpaces(str1)) {
System.out.println("String str1 is empty or has spaces");
}
// evaluates to true
if(isNullOrSpaces(str2)) {
System.out.println("String str2 is empty or has spaces");
}
}
// Method returns true if String is null or empty
private static boolean isNullOrSpaces(String str){
if(str == null || str.isBlank())
return true;
return false;
}
}
输出:
String str2 is empty or has spaces
从isBlank()可以看到,它还检查String是否只有空格。

