如何检查字符串是否为空

时间:2018-10-18 12:08:17

标签: java android arrays nullpointerexception

我有一个活动“ B”。我还有2个活动A和C。两个活动都导致B。但是我传递的A和C的数据不同。因此,在获取数据时

String dataFromA = getIntent.getStringExtra("SomethingA");
String dataFromC = getIntent.getStringExtra("SomethingC");

如何不出错。我不知道用户从哪里开始进行活动B,所以我如何添加If语句或seomthing以便在获取时不会出错,因为A或C行都将获取NullPOinterException

3 个答案:

答案 0 :(得分:3)

您可以使用hasExtra方法检查该String是否存在。

if (getIntent().hasExtra("SomethingA")) {
    String dataFromA = getIntent.getStringExtra("SomethingA");
} else if (getIntent().hasExtra("SomethingC")) {
    String dataFromC = getIntent.getStringExtra("SomethingC");
}

答案 1 :(得分:0)

您可以尝试使用此代码。

        Bundle arguments = getArguments();
        if (arguments != null){
           if (arguments.containsKey("SomethingA")) {
               String somethingA = arguments.getString("SomethingA");
               if (TextUtils.isEmpty(somethingA)){
                   // Your codes comes here
               }
           }
        }

如果没有传递数据,则bundle(参数)可以为null。

答案 2 :(得分:-1)

要检查字符串是否为空,请使用以下代码:

if(TextUtils.isEmpty(yourString))
 {
 // String empty
 }
 else
 {
   // string not empty
  }

在您的情况下,您将其检查为:

  if (getIntent()!=null && getIntent().getStringExtra!=null )
    {
        if (getIntent().hasExtra("SomethingA") && getIntent().hasExtra("SomethingB"))
        String dataFromA = getIntent.getStringExtra("SomethingA");
        String dataFromB = getIntent.getStringExtra("SomethingB");

    }