今天接觸了StringUtils,這個apache的工具類,源碼裏有不少的方法用來方便大家 。最重要的是isEmpty和isBlank方法。下面的代碼註解裏寫得很清楚了。
isEmpty()方法中, 判斷邏輯就是這一句: return str == null || str.length() == 0;
當傳入的參數str等於null ,或者它的長度爲零時,那麼isEmpty方法的返回值就是true,也就是說當傳入的參數爲空字符串或者null時,返回值爲true。註釋中提供了好幾個例子,可以幫助大家理解。注意,whitespace在這個方法中返回false,意爲notEmpty.
// Empty checks
//-----------------------------------------------------------------------
/**
* <p>Checks if a String is empty ("") or null.</p>
*
* <pre>
* StringUtils.isEmpty(null) = true
* StringUtils.isEmpty("") = true
* StringUtils.isEmpty(" ") = false
* StringUtils.isEmpty("bob") = false
* StringUtils.isEmpty(" bob ") = false
* </pre>
*
* <p>NOTE: This method changed in Lang version 2.0.
* It no longer trims the String.
* That functionality is available in isBlank().</p>
*
* @param str the String to check, may be null
* @return <code>true</code> if the String is empty or null
*/
public static boolean isEmpty(String str) {
return str == null || str.length() == 0;
}
isBlank方法測試的是是否是whitespace或者爲 空字符串或者null.
/**
* <p>Checks if a String is whitespace, empty ("") or null.</p>
*
* <pre>
* StringUtils.isBlank(null) = true
* StringUtils.isBlank("") = true
* StringUtils.isBlank(" ") = true
* StringUtils.isBlank("bob") = false
* StringUtils.isBlank(" bob ") = false
* </pre>
*
* @param str the String to check, may be null
* @return <code>true</code> if the String is null, empty or whitespace
* @since 2.0
*/
public static boolean isBlank(String str) {
int strLen;
if (str == null || (strLen = str.length()) == 0) {
return true;
}
for (int i = 0; i < strLen; i++) {
if ((Character.isWhitespace(str.charAt(i)) == false)) {
return false;
}
}
return true;
}