当我的数组中有数据时,得到NullPointerException

时间:2014-07-16 19:45:25

标签: java arrays exception nullpointerexception null

我正在尝试创建自己的信用卡验证器版本,目前我正在使用Luhn算法检查数字。在这段代码中,我将信用卡数字移入和移出数组,并将它们从ints更改为字符串,反之亦然。 这是我的代码片段:

  public static void checkDigits(){
  System.out.println("Printing out charat card:");
   //check digits
  checkDigits = new int[length];
  for(int i = 0; i < length ; i++){
     checkDigits[i] = Integer.parseInt(card.substring(i,i+1));

  //successfully puts digits into array
  }
  for(int e = length-2; e >= 0; e-=2){
     checkDigits[e] = 2*checkDigits[e];
  }
  for(int d = 0; d < length; d++){
     holdDigitsChar.add(String.valueOf(checkDigits[d])); 
  }
  for(int v = 0; v<length;v++){
     if(holdDigitsChar.get(v).length() == 2){
        holdDigits.add(Integer.parseInt(holdDigitsChar.get(v).substring(0,1)));
        holdDigits.add(Integer.parseInt(holdDigitsChar.get(v).substring(1,2)));
     }
     else{
        holdDigits.add(Integer.parseInt(holdDigitsChar.get(v)));
     }
  }
  for(int c = 0; c < holdDigits.size(); c++){
     checkSum += holdDigits.get(c);
  }
  System.out.println("Check sum:" +checkSum);
 }

据说这条线上有一个NPE:

  holdDigitsChar.add(String.valueOf(checkDigits[d])); 

我已经使用print语句检查了数组,并从信用卡返回了数字字符串。为什么它给我一个空指针?如果有帮助,我可以粘贴其余的代码。

感谢。

PS我还没有超过这一行,所以我不确定其他部分是否有效。

1 个答案:

答案 0 :(得分:1)

简单:holdDigitsChar为空。下次尝试更努力地搜索。