2017-04-05 79 views
-1

我得到一個錯誤:的Java parseInt函數錯誤

Exception in thread "main" java.lang.NumberFormatException: null 
    at java.lang.Integer.parseInt(Integer.java:542) 
    at java.lang.Integer.parseInt(Integer.java:615) 
    at Maze.<init>(Maze.java:24) 
    at Assignment1.main(Assignment1.java:13) 

我有兩個類,迷宮和分配1:

`進口java.io. ; import java.util。;

public class Maze 
{ 
    private Vertex[] rooms; 
    private String a = ""; 

    public Maze(String filename) 
    { 

     BufferedReader readFile = null; 
     String line, roomname; 
     int roomXcoord, roomYcoord, room1 = 0, room2 = 0; 
try{ 
     readFile = new BufferedReader(new FileReader("C:\\Users\\Parth\\Documents\\try.maze")); 
     line = readFile.readLine(); //next line 

     while (line != null) { 
      System.out.println(line); 
      line = readFile.readLine();  
     } //end first - while 

      int temp = Integer.parseInt(line); 
      rooms = new Vertex[temp]; 
      for(int i=0; i <rooms.length; i++) 
      { 
       StringTokenizer strk = new StringTokenizer(line, " "); 
       roomname = strk.nextToken(); 
       roomXcoord = Integer.parseInt(strk.nextToken()); 
       roomYcoord = Integer.parseInt(strk.nextToken()); 
       rooms[i] = new Vertex(roomname, roomXcoord, roomYcoord); 
      } 
      line = readFile.readLine(); 

      while (room1 != -1 && room2 != -1) 
      { line=readFile.readLine(); 
      StringTokenizer strk =new StringTokenizer(line," "); 
      room1=Integer.parseInt(strk.nextToken()); 
      room2=Integer.parseInt(strk.nextToken()); 
      } 
} 
    catch (IOException e) 
    { 
     e.printStackTrace(); 
    } 
    } 

    public Vertex[] getRooms() 
    { 

    return rooms; 
    } 

    public String toString() 
    { 
     for (int i=0; i<rooms.length; i++){ 
     a = rooms[i].getName() + " " + rooms[i].getXCoord() + " " + rooms[i].getYCoord() +"\n"; 
     } 
    return a; 
}//end toString 

}//end Maze` 



    import java.io.IOException; 
import java.io.*; 
import java.util.*; 

/** 
* 
* 
* 
*/ 
public class Assignment1 { 

public static void main(String[] args){ 
    Maze newMaze = new Maze(null); 
    System.out.println(newMaze.toString()); 
} 
} 

我明白null是錯誤的,但我仍然能看到我的輸入文件,該文件是:在迷宮類出現在第24行

Sample Input

錯誤:int temp = Integer.parseInt(line); 和第13行的作業1級:Maze newMaze = new Maze(null);

我該如何擺脫此錯誤?

+0

這似乎是你想了'null'值解析爲'int',你將不得不調試代碼,找出爲什麼這個 – MadProgrammer

+0

'過了一會兒(線!= NULL) {''line'現在'null'所以當然''Integer.parseInt(line);'將失敗 –

+0

我在你的簡單輸入行中看到一些字符而不是數字,你可以使用int.tryParse()來避免拋出異常在這種情況下, –

回答

-1
while (line != null) { 
    System.out.println(line); 
    line = readFile.readLine();  
} //end first - while 

// Here the line will be null 
int temp = Integer.parseInt(line);