簡體   English   中英

將String數組轉換為Int數組時發生NullPointerException

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM