最近在Review同事写的代码,发现同事在对字符串进行判空时,还在使用string == null || string.equals("")
这种代码,了不起看着心里苦。在Java开发中,字符串处理是一个常见的操作,而org.apache.commons.lang3.StringUtils
工具类提供了一系列强大而实用的方法,其中的isEmpty
和isBlank
系列方法是我们常用的工具。我们应当合理的利用起来,让代码看起来更优雅。本文将深入探讨这两个系列的方法,分析其用途和实现原理,让各位老铁更好地理解和应用这些方法。
前言
org.apache.commons.lang3.StringUtils
工具类的isEmpty
和isBlank
系列方法是在处理字符串时极为有用的工具。它们不仅能够简化代码,还能够提高代码的可读性。在许多情况下,我们需要检查字符串是否为空或为空白,这时这些方法就能派上用场。
isEmpty系列
StringUtils.isEmpty()
这个方法用于判断CharSequence
是否为空,即为null
或长度为0。方法的实现十分简洁,通过对CharSequence
的null
检查和长度检查来确定是否为空。
public static boolean isEmpty(final CharSequence cs) {
return cs == null || cs.length() == 0;
}
StringUtils.isNotEmpty()
与isEmpty()
相反,该方法用于判断CharSequence
是否不为空。这是一个实用的方法,通过调用isEmpty()
的结果的取反来实现。
public static boolean isNotEmpty(final CharSequence cs) {
return !isEmpty(cs);
}
StringUtils.isAnyEmpty()
该方法用于判断一组CharSequence
中是否至少有一个为空。通过遍历传入的CharSequence
数组,检查每个元素是否为空,如果存在任何一个为空,则返回true
。
public static boolean isAnyEmpty(final CharSequence... css) {
if (ArrayUtils.isEmpty(css)) {
return true;
}
for (final CharSequence cs : css){
if (isEmpty(cs)) {
return true;
}
}
return false;
}
StringUtils.isNoneEmpty()
该方法与isAnyEmpty()
相反,用于判断一组CharSequence
是否全部不为空。通过调用isAnyEmpty()
的结果的取反来实现。
public static boolean isNoneEmpty(final CharSequence... css) {
return !isAnyEmpty(css);
}
isBlank系列
StringUtils.isBlank()
isBlank()
方法用于判断CharSequence
是否为空白,包括null
、空字符串或仅包含空格的字符串。通过遍历CharSequence
中的每个字符,检查是否存在非空格字符,从而判断是否为空白。
public static boolean isBlank(final CharSequence cs) {
final int strLen = length(cs);
if (strLen == 0) {
return true;
}
for (int i = 0; i < strLen; i ) {
if (!Character.isWhitespace(cs.charAt(i))) {
return false;
}
}
return true;
}
StringUtils.isNotBlank()
与isBlank()
相反,isNotBlank()
方法用于判断CharSequence
是否不为空白。通过调用isBlank()
的结果的取反来实现。
public static boolean isNotBlank(final CharSequence cs) {
return !isBlank(cs);
}
StringUtils.isAnyBlank()
该方法用于判断一组CharSequence
中是否至少有一个为空白。通过遍历传入的CharSequence
数组,检查每个元素是否为空白,如果存在任何一个为空白,则返回true
。
public static boolean isAnyBlank(final CharSequence... css) {
if (ArrayUtils.isEmpty(css)) {
return true;
}
for (final CharSequence cs : css){
if (isBlank(cs)) {
return true;
}
}
return false;
}
StringUtils.isNoneBlank()
该方法与isAnyBlank()
相反,用于判断一组CharSequence
是否全部不为空白。通过调用isAnyBlank()
的结果的取反来实现。
public static boolean isNoneBlank(final CharSequence... css) {
return !isAnyBlank(css);
}
总结
org.apache.commons.lang3.StringUtils
工具类中的isEmpty
和isBlank
系列方法为处理字符串提供了强大的工具。通过这些方法,开发者能够更简洁地进行字符串状态的检查,提高代码的可读性和可维护性。在实际项目中,充分了解并熟练使用这些方法将大大提高开发效率。