Home >Java >javaTutorial >How to Reliably Check for Non-Null and Non-Empty Strings in Java?
Assessing Non-Null and Non-Empty Strings
In programming, ensuring the validity of string inputs is crucial. A common task involves verifying whether a string is neither null nor empty. Let's explore various approaches to handle this scenario.
Considering the code snippet provided:
public void doStuff(String str) { if (str != null && str != "") { /* handle empty string */ } /* ... */ }
While this seems intuitive, it introduces a potential error if str is null. In Java, comparing a string to an empty string using == evaluates to false if str is null. This can lead to an unintended null pointer exception when checking the emptiness of str.
Using isEmpty() Method
A safer approach involves utilizing Java's isEmpty() method available since Java SE 1.6:
if(str != null && !str.isEmpty())
This expression ensures that str is not null and has at least one non-whitespace character. Using the && operator, it short-circuits the evaluation, avoiding a null pointer exception if str is null.
Considering Whitespace
If it's necessary to check for strings that do not contain any whitespace characters, the trim() method can be employed:
if(str != null && !str.trim().isEmpty())
This expression removes leading and trailing whitespace characters and then checks for emptiness. Alternatively, Java 11 introduces the isBlank() method, which accomplishes the same functionality:
if(str != null && !str.isBlank())
Concise Function Approach
For a concise solution, a utility function can be defined:
public static boolean empty( final String s ) { // Null-safe, short-circuit evaluation. return s == null || s.trim().isEmpty(); }
This function can be utilized as follows:
if( !empty( str ) )
By employing these methods, developers can effectively ascertain whether a string is not null and contains non-whitespace characters, enhancing the robustness and accuracy of their code.
The above is the detailed content of How to Reliably Check for Non-Null and Non-Empty Strings in Java?. For more information, please follow other related articles on the PHP Chinese website!