Java 字符串数组的空指针异常

Java 字符串数组的空指针异常,java,android,nullpointerexception,arrays,Java,Android,Nullpointerexception,Arrays,我有下面的代码,在这一行我得到了空指针异常:不需要的[g]。等于(“” 我不知道这是怎么回事,因为我在检查之前,如果不需要的不是空的。 谢谢你的帮助:) public String[]setExercies(){ DataBaseMain数据=新DataBaseMain(此); data.open(); 字符串[]不需要的=数据。GetAllunAnteXercies(); String[]exits=data.getAllExercies(); data.close(); 如果(不需要==nu

我有下面的代码,在这一行我得到了空指针异常:
不需要的[g]。等于(“”

我不知道这是怎么回事,因为我在检查之前,如果不需要的不是空的。 谢谢你的帮助:)

public String[]setExercies(){
DataBaseMain数据=新DataBaseMain(此);
data.open();
字符串[]不需要的=数据。GetAllunAnteXercies();
String[]exits=data.getAllExercies();
data.close();
如果(不需要==null)
返回出口;
int f=0;
对于(int g=0;g<0.length;g++)
{
if(不需要的[g]。等于(“”)
f++;
}
字符串[]临时=新字符串[不需要的.length-f];
f=0;
for(int k=0;k<0.length;k++){
if(不需要的[k]。等于(“”==false)
{
温度[f]=不需要的[k];
f++;
}
}

不需要的字符串值为null。您需要额外的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++;
}
for(int g=0;g
由于某些原因,您的
GetAllunAnteXercies()
返回null

你可以在这里签空

for(int g = 0; g < unWanted.length; g++)
{
    if(unwanted[g] != null && unWanted[g].equals(""))
        f++;
}
for(int g=0;g
数组中的一个值为空。您必须找出包含该值的索引,但可以尝试:

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++;
}
for(int g=0;g
看起来像是
不需要的[g]
null
g
的某个值。在应用
等于
之前,请执行
null
检查。是否检查了此函数(data.getAllunAnteXercies();)是否返回值且不为null?将字符串与常量比较时,请反转测试,使常量等于非常量。例如,使用
blam.equals(“hoot”)
而不是
如果blam为null将抛出NPE,请使用
hoot.equals(blam)
哪一个会抛出NPE。@DwB:另一方面,尽早检测NPE通常是一件好事,因为数组中有空元素可能是一个需要修复的错误。
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++;
}