Check whether a string is not null and not empty

后端 未结 30 2034
予麋鹿
予麋鹿 2020-11-22 02:13

How can I check whether a string is not null and not empty?

public void doStuff(String str)
{
    if (str != null && str != \"**here I want to check          


        
相关标签:
30条回答
  • 2020-11-22 03:05

    This works for me:

    import com.google.common.base.Strings;
    
    if (!Strings.isNullOrEmpty(myString)) {
           return myString;
    }
    

    Returns true if the given string is null or is the empty string.

    Consider normalizing your string references with nullToEmpty. If you do, you can use String.isEmpty() instead of this method, and you won't need special null-safe forms of methods like String.toUpperCase either. Or, if you'd like to normalize "in the other direction," converting empty strings to null, you can use emptyToNull.

    0 讨论(0)
  • 2020-11-22 03:05

    For completeness: If you are already using the Spring framework, the StringUtils provide the method

    org.springframework.util.StringUtils.hasLength(String str)
    

    Returns: true if the String is not null and has length

    as well as the method

    org.springframework.util.StringUtils.hasText(String str)
    

    Returns: true if the String is not null, its length is greater than 0, and it does not contain whitespace only

    0 讨论(0)
  • 2020-11-22 03:07

    Use Apache StringUtils' isNotBlank method like

    StringUtils.isNotBlank(str)
    

    It will return true only if the str is not null and is not empty.

    0 讨论(0)
  • str != null && str.length() != 0
    

    alternatively

    str != null && !str.equals("")
    

    or

    str != null && !"".equals(str)
    

    Note: The second check (first and second alternatives) assumes str is not null. It's ok only because the first check is doing that (and Java doesn't does the second check if the first is false)!

    IMPORTANT: DON'T use == for string equality. == checks the pointer is equal, not the value. Two strings can be in different memory addresses (two instances) but have the same value!

    0 讨论(0)
  • 2020-11-22 03:09

    I've encountered a situation where I must check that "null" (as a string) must be regarded as empty. Also white space and an actual null must return true. I've finally settled on the following function...

    public boolean isEmpty(String testString) {
      return ((null==testString) || "".equals((""+testString).trim()) || "null".equals((""+testString).toLowerCase()));
    }
    
    0 讨论(0)
  • 2020-11-22 03:12

    I would advise Guava or Apache Commons according to your actual need. Check the different behaviors in my example code:

    import com.google.common.base.Strings;
    import org.apache.commons.lang.StringUtils;
    
    /**
     * Created by hu0983 on 2016.01.13..
     */
    public class StringNotEmptyTesting {
      public static void main(String[] args){
            String a = "  ";
            String b = "";
            String c=null;
    
        System.out.println("Apache:");
        if(!StringUtils.isNotBlank(a)){
            System.out.println(" a is blank");
        }
        if(!StringUtils.isNotBlank(b)){
            System.out.println(" b is blank");
        }
        if(!StringUtils.isNotBlank(c)){
            System.out.println(" c is blank");
        }
        System.out.println("Google:");
    
        if(Strings.isNullOrEmpty(Strings.emptyToNull(a))){
            System.out.println(" a is NullOrEmpty");
        }
        if(Strings.isNullOrEmpty(b)){
            System.out.println(" b is NullOrEmpty");
        }
        if(Strings.isNullOrEmpty(c)){
            System.out.println(" c is NullOrEmpty");
        }
      }
    }
    

    Result:
    Apache:
    a is blank
    b is blank
    c is blank
    Google:
    b is NullOrEmpty
    c is NullOrEmpty

    0 讨论(0)
提交回复
热议问题