[英]NullPointerException at conversion of String array to Int array
我是編程的初學者,因此決定開發自己的二進制到十進制轉換器程序,以此為樂。 在我的程序中,我將String數組的內容移動到Int數組。 問題是我似乎在將String更改為Int的代碼中始終收到NullPointerException
錯誤。 我已經閱讀了該錯誤,並嘗試了許多其他方法來消除該錯誤,但是沒有任何幫助。 我可能做錯了什么?
"Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException"
我的代碼:
int ans = 0;
int multi = 0;
strArray = null;
intArray = null;
if (rbBin.isSelected()) {
txaNew.setText("");
String num = ftxfOld.getText();
strArray = num.replaceAll("\\[", "").replaceAll("\\]", "").split(",");
for (int i = 0; i < strArray.length; i++) {
try {
intArray[i] = Integer.parseInt(strArray[i]); //I GET THE ERROR HERE
} catch (NumberFormatException nfe) {
}
}
for (int j = 0; j < num.length() + 1; j++) {
multi = intArray[j] * 2 ^ j;
ans = ans + multi;
}
}
txaNew.append(Integer.toString(ans));
發生這種情況是因為在Java中,必須在使用可變變量之前對其進行初始化。 就您而言,當您這樣做時:
intArray[i] = Integer.parseInt(strArray[i]); //I GET THE ERROR HERE
initArray
為null。
更改您的代碼:
strArray = num.replaceAll("\\[", "").replaceAll("\\]", "").split(",");
if (strArray != null){
//You have to initialize your variable
intArray = new int[strArray.length];
for (int i = 0; i < strArray.length; i++) {
try {
intArray[i] = Integer.parseInt(strArray[i]);
} catch (NumberFormatException nfe) {
nfe.printStackTrace();
};
}
}
您必須首先實例化intArray。
intArray = new int[strArray.length];
因此,您將擁有:
String num = ftxfOld.getText();
strArray = num.replaceAll("\\[", "").replaceAll("\\]", "").split(",");
intArray = new int[strArray.length];
for (int i = 0; i < strArray.length; i++) {
try {
intArray[i] = Integer.parseInt(strArray[i]); //I GET THE ERROR HERE
} catch (NumberFormatException nfe) {};
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.