What is the best way to check if a Java String object is empty
Sep. 5, 2006
What is the best way to check if a Java String object is empty?
Solution 1:
someString.equals("");
- Pros:
- readable
- Cons:
- possible null pointer exception if someString is null
- create extra String object (""). Overhead can be reduced by using static final String EMPTY_STRING = "";
- not very efficient because equals first does a string length comparison
Solution 2:
public boolean isNotNullAndEmpty(String str) { if((null != str) && (str.length() == 0)) { return true; } else { return false; } // ... or just // return (str == null) ? false : str.length() == 0; }
- Pros:
- tests for null string
- efficient
- abstraction
- Cons:
- a bit more code to write
Solution 3:
"".equals(someString);
- Pros:
- avoids the null pointer exception issue that Solution 1 has
- readable but awkward at first. Maybe use EMPTY_STRING.equals(someString)
- Cons:
- create extra String object (""). Overhead can be reduced by using static final String EMPTY_STRING = "";
- not very efficient because equals first does a string length comparison
Conclusion
- Either use Solution 2 or Solution 3. If you use Solution 3, make sure that you use a static final empty string.