天天看點

判斷字元串是否為“ ”和 null

判斷字元串是否為“ ”和 null

/**
* 我們在判斷一個字元串是否為 null 或 ""時,可以使用 StringUtils 的方法:
* StringUtils.isEmpty(str2)
* 或
* StringUtils.isBlank(str2)
* 當字元串為 null 或 ""時,傳回true,否則傳回false; 示例如下:
*/
if (StringUtils.isEmpty(str2)) {
    System.out.println(11);
}

if (StringUtils.isBlank(str2)) {
    System.out.println(222);
}
           
但 StringUtils.isEmpty(str2) 和 StringUtils.isBlank(str2) 是有差別的
// 源碼如下:

public static boolean isEmpty(String str) {
    return str == null || str.length() == 0;
}

public static boolean isBlank(String str) {
    int strLen;
    if (str != null && (strLen = str.length()) != 0) {
        for(int i = 0; i < strLen; ++i) {
            if (!Character.isWhitespace(str.charAt(i))) {
                return false;
            }
        }

        return true;
    } else {
        return true;
    }
}

/**
 * 分析:
 * 當字元串 str1 = "" 時,StringUtils.isEmpty(str1) 和 StringUtils.isBlank(str1)
 * 的結果是一樣的;
 * 但當 str1 = " " 或str2 = " " + " "時 StringUtils.isEmpty(str1)就傳回false,而
 * StringUtils.isBlank(str1) 則傳回 true 了。
 *
 * 結果:
 * 當字元串都為空格、制表符、tab 的情況下 isEmpty 判斷字元串不為空
 * isBlank判斷字元串任然為空
 * 是以在使用時要根據情況自行選擇使用哪種
 */

/**
 * StringUtils是 org.apache.commons.lang.StringUtils的包,
 * 使用時需要導入依賴
 *        <!--String Utils-->
*         <dependency>
*             <groupId>commons-lang</groupId>
*             <artifactId>commons-lang</artifactId>
*             <version>2.6</version>
*         </dependency>
 * 
 */