Android的检查null或在Android的空字符串

问题描述 投票:54回答:8

在我的努力AsyncTask我从服务器获得的电子邮件地址。在onPostExecute()我要检查的电子邮件地址emptynull。我用下面的代码来检查:

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

我如何检查nullempty字符串?提前致谢。

android android-asynctask android-fragmentactivity
8个回答
127
投票

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

笔记

  • documentation指出null和零长度的检查。没有必要在这里重新发明轮子。
  • 一个很好的做法,遵循的是early return

55
投票

从@乔恩飞碟双向评论,真的String"null"。下面的代码解决了它

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

14
投票

检查空字符串,如果它等于零,长度是零或含有“空”串

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

13
投票

哟可以用这个检查:

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

请记住,你必须从上面的准确与顺序代码中使用。因为这保证你不会得到userEmail.isEmpty()一个空指针异常,如果userEmail为null。 上面的描述中,这只是因为Java SE的1.6可用。检查userEmail.length() == 0在以前的版本。 更新: 从isEmpty(stringVal)TextUtils方法使用:

if (TextUtils.isEmpty(userEmail))

2
投票

您可以从文本实用程序的实用方法“的isEmpty”检查,

的isEmpty(CharSequence的STR)方法检查这两个条件,空和长度。

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

1
投票

如果你检查null或空字符串,所以你可以试试这个

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

0
投票

所有你能做的就是呼吁空字符串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);

-1
投票

这为我工作

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){
}
© www.soinside.com 2019 - 2024. All rights reserved.