-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()来避免抛出异常在这种情况下, –