检查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是否只有空格。