字符串数组的空指针异常

时间:2013-05-10 16:33:37

标签: java android nullpointerexception arrays

我有以下代码,我在此行获得Null指针异常:unWanted[g].equals("")

我不知道它怎么可能因为我之前检查过如果unWanted不是null。 感谢您的帮助:)

public String[] setExercies(){

DataBaseMain data = new DataBaseMain(this);
data.open();
String[] unWanted = data.getAllUnwantedExercies();  
String[] exits = data.getAllExercies();
data.close();

if(unWanted == null)
    return exits;

int f = 0;

for(int g = 0; g < unWanted.length; g++)
{
    if(unWanted[g].equals(""))
        f++;
}

String[] temp = new String[unWanted.length-f];
f = 0;

for (int k = 0; k < unWanted.length; k++){
    if(unWanted[k].equals("") == false)
    {
        temp[f] = unWanted[k];
        f++;
    }
}

3 个答案:

答案 0 :(得分:0)

unWanted中的字符串值为null。您需要额外的空检查。根据您的意图使用其中一种

for(int g = 0; g < unWanted.length; g++)
{
    if(unWanted[g] == null || unWanted[g].equals(""))
        f++;
}

for(int g = 0; g < unWanted.length; g++)
{
    if(unWanted[g] != null && unWanted[g].equals(""))
        f++;
}

答案 1 :(得分:0)

由于某种原因,您的getAllUnwantedExercies()返回null。

你可以在这里检查null

for(int g = 0; g < unWanted.length; g++)
{
    if(unwanted[g] != null && unWanted[g].equals(""))
        f++;
}

答案 2 :(得分:0)

数组unWanted中的一个值为null。您必须找出包含它的索引,但您可以尝试:

for(int g = 0; g < unWanted.length; g++)
{
  String unWantedVal = unWanted[g];
  if(unWantedVal == null)
     System.out.println("Index " + g + " has a null value!");
  else if(unWantedVal.equals(""))
        f++;
}