簡體   English   中英

使用 BufferedReader 從拋出 NullPointerException 的二維數組中獲取值

[英]Using BufferedReader to grab values from a 2D array throwing NullPointerException

我需要使用 BufferedReader 從 a.txt 文件中獲取 integer 值,然后將它們保存到 2D int 數組中。 出於某種原因,當我到達.trim()行時,它會拋出 NullPointerException。 我的數組中的每個數字都由文件中的空格分隔:

90 47 110 95 95 
101 87 
54 0 38 12 

這是我讀取然后保存整數的損壞代碼:

int2DArr = new int[int2Drows][int2Dcolumns];
        String s;
        while((s = br.readLine()) != null){
            for(int i = 0; i<int2DArr.length; i++){
                String[] currLine = br.readLine().trim().split(" "); //throwing error here
                for(int j = 0; j<currLine.length; j++){
                    int2DArr[i][j] = Integer.parseInt(currLine[j]);
                }
            }
        }

任何幫助將不勝感激!

我認為問題在於有一個額外的readLine() 您已經在閱讀while循環中的下一行。 所以在循環內你應該使用s而不是閱讀下一行。 使用您當前的代碼,您在while循環中每次迭代讀取 2 行,但您打算每次迭代讀取 1 行。

請注意在trim調用之前的更改。

int2DArr = new int[int2Drows][int2Dcolumns];
String s;
while((s = br.readLine()) != null){
  for(int i = 0; i<int2DArr.length; i++){
    String[] currLine = s.trim().split(" ");
    for(int j = 0; j<currLine.length; j++){
      int2DArr[i][j] = Integer.parseInt(currLine[j]);
    }
  }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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