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

时间:2014-11-23 07:59:45

标签: android android-asynctask android-fragmentactivity

在我尝试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字符串?提前谢谢。

12 个答案:

答案 0 :(得分:119)

使用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和zero长度。这里不需要重新发明轮子。
  • 遵循的一个好习惯是early return

答案 1 :(得分:53)

来自@Jon Skeet评论,String值确实为"null"。以下代码解决了它

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

答案 2 :(得分:14)

检查空字符串是否等于null,长度为零或包含“null”字符串

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

答案 3 :(得分:8)

哟可以用这个检查:

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

请记住,您必须使用上述完全相同的代码。因为如果userEmail.isEmpty()为空,确保您不会从userEmail获得空指针异常
以上描述,它仅在Java SE 1.6之后可用。检查以前版本的userEmail.length() == 0

更新:

使用isEmpty(stringVal)类的TextUtils方法:

if (TextUtils.isEmpty(userEmail))

答案 4 :(得分:2)

如果使用 Kotlin:-

 if (TextUtils.isEmpty(userEmail).not()) {
        // do your work
    } else {
        // can show error message userEmail is empty
    }

如果使用 Java:-

  if (!TextUtils.isEmpty(userEmail)) {
        // do your work
    } else {
        // can show error message userEmail is empty
    }

答案 5 :(得分:1)

你可以用实用方法&#34; isEmpty&#34;来检查它。来自TextUtils,

isEmpty(CharSequence str)方法检查两个条件,为null和length。

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

答案 6 :(得分:1)

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

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

答案 7 :(得分: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);

答案 8 :(得分:0)

我测试字符串是否为空的简单解决方案:

如果(s.equals(“ null”)){ ..... }

有两种情况。

(类型为String的)变量为null(不存在): ==有效。

变量的值为空, * .equals(“ null”)给出正确的布尔值。

查看图片。 enter image description here

答案 9 :(得分:0)

检查空字符串的正确方法。

1.速度更快但不是空安全,如果字符串为空,它会抛出NullPointEreexception

if str.isEmpty() then

2.它也更快但不是空安全。

if String.length() = 0 then

3.它没有前两个快,但它是空安全的。

if "".equals(str) then

4.第四种

TextUtils.isEmpty(myString)

5. 如果要检查空字符串。

StringUtils.isEmpty(nullString)

6. 如果您想同时检查空字符串和空字符串

if (str == null || str.length() == 0)

答案 10 :(得分:-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){
}

答案 11 :(得分:-1)

如果给出的所有答案均无效,请尝试

String myString = null;

if(myString.trim().equalsIgnoreCase("null")){
    //do something
}