長年使い続けている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でしょうかね