2017-04-05 2 views
-1

Ich erhalte eine Fehlermeldung:Java ParseInt Fehler

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) 

Ich habe zwei Klassen, Irrgarten und Assignment1:

`import java.io. ; importieren Sie 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()); 
} 
} 

Inull verstehen ist der Fehler, aber ich bin noch in der Lage meine Eingabedatei, um zu sehen, das ist:

Sample Input

Der Fehler auf Maze-Klasse auf der Linie erscheint 24: int temp = Integer.parseInt(line); und in Die Klasse assignment1 in Zeile 13: Maze newMaze = new Maze(null);

Wie kann ich diesen Fehler beheben?

+0

Es scheinen würden Sie einen 'null' Wert auf' int' zu analysieren sind versucht, Sie gehen zu haben, um Ihren Code zu debuggen, um herauszufinden, warum – MadProgrammer

+0

Nach dieser 'while (Linie! = Null) {'' line' ist jetzt 'null', also natürlich 'Integer.parseInt (line);' wird fehlschlagen –

+0

Ich sehe in Ihren einfachen Eingabezeilen ein Zeichen anstelle von Zahlen, Sie können int.tryParse() verwenden, um das Auslösen einer Ausnahme zu vermeiden in diesem Fall –

Antwort

-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);