Android проверьте null или пустую строку в Android

в моей попытке AsyncTask Я вам адрес моего сервера. В onPostExecute() Я должен проверить адрес электронной почты empty или null. Я использовал следующий код, чтобы проверить это:

if (userEmail != null && !userEmail.isEmpty()) {
    Toast.makeText(getActivity(), userEmail, Toast.LENGTH_LONG).show();
    UserEmailLabel.setText(userEmail);
}

но в моем Toast Я вижу null печати. Мой полный код:

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);
        }
    }

как я могу проверить для null и empty строку? Спасибо заранее.

8 ответов


использовать 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);

Примечания


от комментария @Jon Skeet, действительно String значение "null". Следующий код решил это

if (userEmail != null && !userEmail.isEmpty() && !userEmail.equals("null")) 

проверка пустой строки, если она равна нулю, длина равна нулю или содержит строку "null"

public static boolean isEmptyString(String text) {
        return (text == null || text.trim().equals("null") || text.trim()
                .length() <= 0);
    }

йо может проверить это с помощью этого:

if(userEmail != null && !userEmail .isEmpty())

и помните, что вы должны использовать точный код выше, с этим порядок. Потому что это гарантирует, что вы не получите исключение нулевого указателя из userEmail.isEmpty() если userEmail равно null.

Выше описания он доступен только с Java SE 1.6. Проверка userEmail.length() == 0 на предыдущих версиях.


вы можете проверить его с помощью метода утилиты "isEmpty" из TextUtils,

метод isEmpty(CharSequence str) проверяет оба условия, для null и length.

public static boolean isEmpty(CharSequence str) {
     if (str == null || str.length() == 0)
        return true;
     else
        return false;
}

Если вы проверяете null или пустую строку, чтобы вы могли попробовать это

if (createReminderRequest.getDate() == null && createReminderRequest.getDate().trim().equals("")){
    DialogUtility.showToast(this, ProjectUtils.getString(R.string.please_select_date_n_time));
}

все, что вы можете сделать, это вызвать метод equals () на пустом строковом литерале и передать объект, который вы тестируете, как показано ниже :

 String nullString = null;
 String empty = new String();
 boolean test = "".equals(empty); // true 
 System.out.println(test); 
 boolean check = "".equals(nullString); // false 
 System.out.println(check);

это сработало для меня

EditText   etname = (EditText) findViewById(R.id.etname);
 if(etname.length() == 0){
                    etname.setError("Required field");
                }else{
                    Toast.makeText(getApplicationContext(),"Saved",Toast.LENGTH_LONG).show();
                }

или используйте это для строк

String DEP_DATE;
if (DEP_DATE.equals("") || DEP_DATE.length() == 0 || DEP_DATE.isEmpty() || DEP_DATE == null){
}