'Android check null or empty string in Android
In my trying AsyncTask I get email address from my server. In onPostExecute() I have to check is email address empty or null. I used following code to check it:
if (userEmail != null && !userEmail.isEmpty()) {
Toast.makeText(getActivity(), userEmail, Toast.LENGTH_LONG).show();
UserEmailLabel.setText(userEmail);
}
But in my Toast I see null is printed. My full code:
private class LoadPersonalData extends AsyncTask<String, Void, Void> {
@Override
protected void onPreExecute() {
super.onPreExecute();
}
protected Void doInBackground(String... res) {
List<NameValuePair> params = new ArrayList<NameValuePair>();
params.add(new BasicNameValuePair("user_id", PrefUserName));
params.add(new BasicNameValuePair("type", type_data));
JSONObject json = jsonParser.makeHttpRequest(Url, "POST", params);
String result = "";
try {
result = json.getString("message");
} catch (JSONException e) {
e.printStackTrace();
}
if (result.equals("success")) {
try {
userEmail = json.getString("email");
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
return null;
}
@Override
protected void onPostExecute(Void result) {
// TODO Auto-generated method stub
super.onPostExecute(result);
if (userEmail != null && !userEmail.isEmpty()) {
Toast.makeText(getActivity(), userEmail, Toast.LENGTH_LONG).show();
UserEmailLabel.setText(userEmail);
}
}
How can I check for null and empty string?
Solution 1:[1]
From @Jon Skeet comment, really the String value is "null". Following code solved it
if (userEmail != null && !userEmail.isEmpty() && !userEmail.equals("null"))
Solution 2:[2]
Use TextUtils.isEmpty( someString )
String myString = null;
if (TextUtils.isEmpty(myString)) {
return; // or break, continue, throw
}
// myString is neither null nor empty if this point is reached
Log.i("TAG", myString);
Notes
- The documentation states that both null and zero length are checked for. No need to reinvent the wheel here.
- A good practice to follow is early return.
Solution 3:[3]
Yo can check it with this:
if(userEmail != null && !userEmail .isEmpty())
And remember you must use from exact above code with that order. Because that ensuring you will not get a null pointer exception from userEmail.isEmpty() if userEmail is null.
Above description, it's only available since Java SE 1.6. Check userEmail.length() == 0 on previous versions.
UPDATE:
Use from isEmpty(stringVal) method from TextUtils class:
if (TextUtils.isEmpty(userEmail))
Kotlin:
Use from isNullOrEmpty for null or empty values OR isNullOrBlank for null or empty or consists solely of whitespace characters.
if (userEmail.isNullOrEmpty())
...
if (userEmail.isNullOrBlank())
Solution 4:[4]
Checking for empty string if it is equal to null, length is zero or containing "null" string
public static boolean isEmptyString(String text) {
return (text == null || text.trim().equals("null") || text.trim()
.length() <= 0);
}
Solution 5:[5]
You can check it with utility method "isEmpty" from TextUtils,
isEmpty(CharSequence str) method check both condition, for null and length.
public static boolean isEmpty(CharSequence str) {
if (str == null || str.length() == 0)
return true;
else
return false;
}
Solution 6:[6]
If using Kotlin:-
if (TextUtils.isEmpty(userEmail).not()) {
// do your work
} else {
// can show error message userEmail is empty
}
If using Java:-
if (!TextUtils.isEmpty(userEmail)) {
// do your work
} else {
// can show error message userEmail is empty
}
Solution 7:[7]
Right way to check empty string.
1. It is faster but not null safe, it will throw NullPointErexception if string is null
if str.isEmpty() then
2. It is also faster but not null safe.
if String.length() = 0 then
3. It is not faster as previous two but it is null safe.
if "".equals(str) then
4. Fouth way
TextUtils.isEmpty(myString)
5. If you want to check for null string.
StringUtils.isEmpty(nullString)
6. If you want to check null and empty string both at same time
if (str == null || str.length() == 0)
Solution 8:[8]
if you check null or empty String so you can try this
if (yourString != null){
if(yourString.length==0 && yourString.equals(""))
Toast.makeText(myClassName.this, "Empty",Toast.LENGTH_LONG).show();
}else{
Toast.makeText(myClassName.this, "String null" , Toast.LENGTH_LONG).show();
}
or using TextUtils class
if (TextUtils.isEmpty(yourString )) {
Toast.makeText(myClassName.this, "Empty" , Toast.LENGTH_LONG).show();
}
Solution 9:[9]
My simple solution to test if a string is null:
if (s.equals("null")){ ..... }
There are two cases.
The variable (of type String) is null(doesn't exists): == works.
The variable has a null value, *.equals("null") gives te right boolean value.
Solution 10:[10]
This worked for me
EditText etname = (EditText) findViewById(R.id.etname);
if(etname.length() == 0){
etname.setError("Required field");
}else{
Toast.makeText(getApplicationContext(),"Saved",Toast.LENGTH_LONG).show();
}
or Use this for strings
String DEP_DATE;
if (DEP_DATE.equals("") || DEP_DATE.length() == 0 || DEP_DATE.isEmpty() || DEP_DATE == null){
}
Solution 11:[11]
Incase all the answer given does not work, kindly try
String myString = null;
if(myString.trim().equalsIgnoreCase("null")){
//do something
}
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow

