AB型技術系 主に備忘録

ほぼプログラム関連の備忘録

Apache Commons StringUtilsのisEmptyとisBlankの違いをふと調べてみた

長年使い続けているStringUtilsのisEmptyとisBlankの違いを今更ながら調べてみました

Apache Commonsのサイトからソースをダウンロードして確認したところ

isEmpty

public static boolean isEmpty(final CharSequence cs) {
    return cs == null || cs.length() == 0;
}

引数の文字列がnullか長さが0なら空と判定されます
trimしてないのでスペースが含まれる場合等は空と判定されません

isBlank

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;
}

引数の文字列がnullか長さが0なら空と判定されるのはisEmptyと同じです
その後に一文字ずつisWhitespaceで空白が含まれているかどうか判定してますね
スペースはisWhitespaceで空白と判定されます

DBの主キー等の必須項目のチェックにはisBlank

システム的に半角スペース等の空白のみが入ることのない文字列の空文字判定にはisEmptyでしょうかね