0

我有以下代码,我在这一行得到空指针异常:unWanted[g].equals("")

我不知道这是怎么回事,因为我在此之前检查了 unWanted 是否为空。感谢您的帮助:)

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++;
    }
}
4

3 回答 3

0

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

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++;
}
于 2013-05-10T16:36:21.373 回答
0

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

你可以在这里检查null

for(int g = 0; g < unWanted.length; g++)
{
    if(unwanted[g] != null && unWanted[g].equals(""))
        f++;
}
于 2013-05-10T16:36:28.113 回答
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++;
}
于 2013-05-10T16:39:09.867 回答