-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行
錯誤:int temp = Integer.parseInt(line);
和第13行的作業1級:Maze newMaze = new Maze(null);
我該如何擺脫此錯誤?
這似乎是你想了'null'值解析爲'int',你將不得不調試代碼,找出爲什麼這個 – MadProgrammer
'過了一會兒(線!= NULL) {''line'現在'null'所以當然''Integer.parseInt(line);'將失敗 –
我在你的簡單輸入行中看到一些字符而不是數字,你可以使用int.tryParse()來避免拋出異常在這種情況下, –