Backend Development 9 min read

Understanding Apache Commons StringUtils: isEmpty, isBlank, and Related Methods

This article introduces Apache Commons Lang's StringUtils utility methods, explaining the behavior and differences of isEmpty, isNotEmpty, isAnyEmpty, isNoneEmpty, as well as isBlank, isNotBlank, isAnyBlank, and isNoneBlank, with code examples and usage guidelines for Java developers.

Architect's Tech Stack
Architect's Tech Stack
Architect's Tech Stack
Understanding Apache Commons StringUtils: isEmpty, isBlank, and Related Methods

Hello everyone, I am Peng Lei.

New colleagues who have been working with Java for three years may not know the difference between isEmpty and isBlank , or even the existence of methods such as isAnyEmpty , isNoneEmpty , isAnyBlank , and isNoneBlank . Let's explore the org.apache.commons.lang3.StringUtils utility class.

isEmpty Series

StringUtils.isEmpty()

Checks whether a CharSequence is null or has a length of zero. A string containing only a space character is not considered empty.

StringUtils.isEmpty(null) = true
StringUtils.isEmpty("") = true
StringUtils.isEmpty(" ") = false
StringUtils.isEmpty("bob") = false
StringUtils.isEmpty(" bob ") = false
/**
 * NOTE: This method changed in Lang version 2.0.
 * It no longer trims the CharSequence.
 * That functionality is available in isBlank().
 *
 * @param cs the CharSequence to check, may be null
 * @return {@code true} if the CharSequence is empty or null
 * @since 3.0 Changed signature from isEmpty(String) to isEmpty(CharSequence)
 */
public static boolean isEmpty(final CharSequence cs) {
    return cs == null || cs.length() == 0;
}

StringUtils.isNotEmpty()

Returns the opposite of isEmpty() , i.e., !isEmpty(cs) .

public static boolean isNotEmpty(final CharSequence cs) {
    return !isEmpty(cs);
}

StringUtils.isAnyEmpty()

Returns true if any of the supplied CharSequence arguments is null or empty.

StringUtils.isAnyEmpty(null) = true
StringUtils.isAnyEmpty(null, "foo") = true
StringUtils.isAnyEmpty("", "bar") = true
StringUtils.isAnyEmpty("bob", "") = true
StringUtils.isAnyEmpty(" bob ", null) = true
StringUtils.isAnyEmpty(" ", "bar") = false
StringUtils.isAnyEmpty("foo", "bar") = false
/**
 * @param css the CharSequences to check, may be null or empty
 * @return {@code true} if any of the CharSequences are empty or null
 * @since 3.2
 */
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()

Equivalent to !isAnyEmpty(css) ; returns true only when **all** supplied CharSequences are non‑null and non‑empty.

StringUtils.isNoneEmpty(null) = false
StringUtils.isNoneEmpty(null, "foo") = false
StringUtils.isNoneEmpty("", "bar") = false
StringUtils.isNoneEmpty("bob", "") = false
StringUtils.isNoneEmpty("  bob  ", null) = false
StringUtils.isNoneEmpty(" ", "bar") = true
StringUtils.isNoneEmpty("foo", "bar") = true
/**
 * @param css the CharSequences to check, may be null or empty
 * @return {@code true} if none of the CharSequences are empty or null
 * @since 3.2
 */
public static boolean isNoneEmpty(final CharSequence... css) {
    return !isAnyEmpty(css);
}

isBlank Series

StringUtils.isBlank()

Checks whether a CharSequence is null , empty ( "" ) or contains only whitespace characters.

StringUtils.isBlank(null) = true
StringUtils.isBlank("") = true
StringUtils.isBlank(" ") = true
StringUtils.isBlank("bob") = false
StringUtils.isBlank(" bob ") = false
/**
 * @param cs the CharSequence to check, may be null
 * @return {@code true} if the CharSequence is null, empty or whitespace only
 * @since 2.0
 * @since 3.0 Changed signature from isBlank(String) to isBlank(CharSequence)
 */
public static boolean isBlank(final CharSequence cs) {
    int strLen;
    if (cs == null || (strLen = cs.length()) == 0) {
        return true;
    }
    for (int i = 0; i < strLen; i++) {
        if (!Character.isWhitespace(cs.charAt(i))) {
            return false;
        }
    }
    return true;
}

StringUtils.isNotBlank()

Returns the opposite of isBlank() , i.e., !isBlank(cs) .

public static boolean isNotBlank(final CharSequence cs) {
    return !isBlank(cs);
}

StringUtils.isAnyBlank()

Returns true if any of the supplied CharSequences is null , empty, or consists solely of whitespace.

StringUtils.isAnyBlank(null) = true
StringUtils.isAnyBlank(null, "foo") = true
StringUtils.isAnyBlank(null, null) = true
StringUtils.isAnyBlank("", "bar") = true
StringUtils.isAnyBlank("bob", "") = true
StringUtils.isAnyBlank(" bob ", null) = true
StringUtils.isAnyBlank(" ", "bar") = true
StringUtils.isAnyBlank("foo", "bar") = false
/**
 * @param css the CharSequences to check, may be null or empty
 * @return {@code true} if any of the CharSequences are blank, null or whitespace only
 * @since 3.2
 */
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()

Returns true only when **all** supplied CharSequences are non‑null, non‑empty and contain at least one non‑whitespace character.

StringUtils.isNoneBlank(null) = false
StringUtils.isNoneBlank(null, "foo") = false
StringUtils.isNoneBlank(null, null) = false
StringUtils.isNoneBlank("", "bar") = false
StringUtils.isNoneBlank("bob", "") = false
StringUtils.isNoneBlank(" bob ", null) = false
StringUtils.isNoneBlank(" ", "bar") = false
StringUtils.isNoneBlank("foo", "bar") = true
/**
 * @param css the CharSequences to check, may be null or empty
 * @return {@code true} if none of the CharSequences are blank, null or whitespace only
 * @since 3.2
 */
public static boolean isNoneBlank(final CharSequence... css) {
    return !isAnyBlank(css);
}

Other StringUtils Methods

For a complete list of methods and detailed documentation, refer to the official Apache Commons Lang API:

https://commons.apache.org/proper/commons-lang/apidocs/org/apache/commons/lang3/StringUtils.html

Additional illustrative images are included in the original article.

JavaBackend DevelopmentApache CommonsStringUtilsisEmptyisBlank
Architect's Tech Stack
Written by

Architect's Tech Stack

Java backend, microservices, distributed systems, containerized programming, and more.

0 followers
Reader feedback

How this landed with the community

login Sign in to like

Rate this article

Was this worth your time?

Sign in to rate
Discussion

0 Comments

Thoughtful readers leave field notes, pushback, and hard-won operational detail here.