0
我努力使自己的信用卡驗證的版本數據,目前我在使用盧恩算法檢查數字的過程。在這段代碼片段中,我將信用卡數字移入和移出數組,並將它們從整數更改爲字符串,反之亦然。 這裏是我的代碼片段:獲得一個NullPointerException異常時,顯然我的陣列中有
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]));
我已經檢查了陣列打印報表,它返回的數字從字符串信用卡。爲什麼它給了我一個空指針?如果這有幫助,我可以粘貼其餘的代碼。
謝謝。
PS我還沒有得到過去的這條線,所以我不知道,如果其他部分仍然可以正常工作。
的NPE意味着holdDigitsChar爲空,不checkDigits –