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

Posted

技术标签:

【中文标题】Android检查Android中的null或空字符串【英文标题】:Android check null or empty string in Android 【发布时间】:2015-01-21 02:25:29 【问题描述】:

在我尝试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);
        
    

如何检查nullempty 字符串?

【问题讨论】:

【参考方案1】:

使用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 声明会检查空长度和零长度。无需在这里重新发明***。 early return 是一个值得遵循的好习惯。

【讨论】:

【参考方案2】:

来自@Jon Skeet 的评论,String 的值实际上是"null"。以下代码解决了它

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

【讨论】:

if (userEmail != null &amp;&amp; (!TextUtils.equals(userEmail ,"null")) &amp;&amp; (!TextUtils.isEmpty(userEmail))) 也有效 这可能适用于电子邮件,但不要使用equals("null") 来检查空用户名。 bbc.com/future/story/… 在大写空值的情况下使用userEmail.equalsIgnoreCase("null") 可能会更好。【参考方案3】:

你可以用这个检查它:

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

请记住,您必须使用上述代码中的确切顺序。因为如果userEmail 为空,确保您不会从userEmail.isEmpty() 获得空指针异常。 上面的描述,它只在 Java SE 1.6 之后可用。在以前的版本中查看 userEmail.length() == 0更新: 使用来自isEmpty(stringVal) 的来自TextUtils 类的方法:

if (TextUtils.isEmpty(userEmail))

科特林: 使用 from isNullOrEmpty 表示 null 或空值或 isNullOrBlank 表示 null 或空或仅包含空白字符。

if (userEmail.isNullOrEmpty())
...
if (userEmail.isNullOrBlank())

【讨论】:

【参考方案4】:

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

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

【讨论】:

【参考方案5】:

您可以使用 TextUtils 中的实用方法“isEmpty”进行检查,

isEmpty(CharSequence str) 方法检查 null 和长度的条件。

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

【讨论】:

【参考方案6】:

如果使用 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
    

【讨论】:

【参考方案7】:

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

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

【讨论】:

【参考方案8】:

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

if (s.equals("null")) ......

有两种情况。

变量(字符串类型)为空(不存在): == 有效。

变量有一个空值, *.equals("null") 给出正确的布尔值。

看图。

【讨论】:

你是指n-u-l-l这个词还是一个值为null的变量? 我猜是空值的变量。【参考方案9】:

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

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

if str.isEmpty() then

2.它也更快,但不安全。

if String.length() = 0 then

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

if "".equals(str) then

4.第四条路

TextUtils.isEmpty(myString)

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

StringUtils.isEmpty(nullString)

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

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

【讨论】:

【参考方案10】:

这对我有用

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】:

如果给出的所有答案都不起作用,请尝试

String myString = null;

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

【讨论】:

以上是关于Android检查Android中的null或空字符串的主要内容,如果未能解决你的问题,请参考以下文章

Map返回Null或空Android Studio

空字符串或空变量的 JSON 标准是啥?

如何检查 Paging 3 库中的列表大小或空列表

Android proguard 问题:路径可能不是 null 或空字符串。路径='空'

检查对象中的值是不是为空或空javascript

spark中的isNullOrEmpty函数检查数据框中的列是不是为空或空字符串