2017-04-05 78 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);