檢查字符串是否不爲空且不爲空

如何檢查字符串是否不爲null也不爲空? android

public void doStuff(String str)
{
    if (str != null && str != "**here I want to check the 'str' is empty or not**")
    {
        /* handle empty string */
    }
    /* ... */
}

#1樓

添加到@BJorn和@SeanPatrickFloyd Guava的方法是: apache

Strings.nullToEmpty(str).isEmpty(); 
// or
Strings.isNullOrEmpty(str);

Commons Lang有時更具可讀性,但我一直在慢慢地更多地依賴Guava,有時在談到isBlank()時,Commons Lang有時會形成混亂(例如是否有空格)。 安全

Guava的Commons Lang isBlank版本爲: 測試

Strings.nullToEmpty(str).trim().isEmpty()

我會說不容許使用"" (空) null是可疑的,而且有潛在的bug,由於它可能沒法處理不容許使用null全部狀況(儘管對於SQL,我能夠理解爲SQL / HQL對'' )很奇怪。 google


#2樓

只需在此處添加Android: spa

import android.text.TextUtils;

if (!TextUtils.isEmpty(str)) {
...
}

#3樓

若是您不想包括整個庫; 只需包含您想要的代碼便可。 您必須本身維護它; 但這是一個很是簡單的功能。 這裏是從commons.apache.org複製的 code

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

#4樓

測試等於空字符串,而且在相同條件下爲null: 對象

if(!"".equals(str) && str != null) {
    // do stuff.
}

若是str爲null,則不拋出NullPointerException ,由於若是arg爲null ,則Object.equals()返回false。 字符串

其餘構造str.equals("")將拋出可怕的NullPointerException 。 有些人可能會認爲使用String文字的格式很糟糕,由於調用equals()時的對象被調用了,可是它確實起做用。 get

還要檢查此答案: https : //stackoverflow.com/a/531825/1532705


#5樓

這對我有用:

import com.google.common.base.Strings;

if (!Strings.isNullOrEmpty(myString)) {
       return myString;
}

若是給定的字符串爲null或爲空字符串,則返回true。

考慮使用nullToEmpty標準化字符串引用。 若是這樣作,則可使用String.isEmpty()代替此方法,而且您也不須要特殊的null安全形式的方法,例如String.toUpperCase。 或者,若是您但願「從另外一個方向」進行歸一化,將空字符串轉換爲null,則可使用emptyToNull。

相關文章
相關標籤/搜索