-2
2 개의 파일을 읽고 인접 행렬에 저장하려고합니다. 스레드 "주요"java.lang.NumberFormatException의에서java.lang.NumberFormatException : 입력 문자열의 경우 : ""| 도로/도시에 대한 Dijkstra 알고리즘 실행
예외 : 그러나, 나는의 오류를 받고 있어요 입력 문자열 : ""
java.lang.NumberFormatException.forInputString에서 (알 수없는 소스)
java.lang.Integer.parseInt (알 소스)에 java.lang.Integer.parseInt(알 소스) project3.Project3.storeData (Project3.java:36)에서
에서
012,351,(내 주요 방법)이다 project3.Project3.main (Project3.java:64) 에서36 | int number = Integer.parseInt(tokens[0]);
64 | storeData();
내 storeData 방법 : 나는 그림을 원하는
public static void storeData() throws IOException {
digraph = new Digraph();
File file1 = new File("city.dat");
Scanner cities = new Scanner(file1);
File file2 = new File("road.dat");
Scanner roads = new Scanner(file2);
while(cities.hasNext()) {
String delims = "[ ]+";
String[] tokens = cities.nextLine().split(delims);
if(tokens.length > 5){
int number = Integer.parseInt(tokens[0]);
String code = tokens[1];
String cityName = tokens[2] + " " + tokens[3];
int pop = Integer.parseInt(tokens[4]);
int elev = Integer.parseInt(tokens[5]);
digraph.add(new City(number, code, cityName, pop, elev));
}
else {
int number = Integer.parseInt(tokens[0]);
String code = tokens[1];
String cityName = tokens[2];
int pop = Integer.parseInt(tokens[3]);
int elev = Integer.parseInt(tokens[4]);
digraph.add(new City(number, code, cityName, pop, elev));
}
}
while(roads.hasNext()) {
digraph.insertRoad(roads.nextInt() -1, roads.nextInt() -1, roads.nextInt());
}
cities.close();
roads.close();
}
왜 이런 일이 일어나고 내 나머지 프로그램을 계속할지 모른다. 어떤 도움을 주시면 감사하겠습니다! 고맙습니다!
빈'String '을'int '로 파싱하려고합니다. 가능하지 않습니다. – SomeJavaGuy
@ Kevin-Esche 내가이 문제에 대해 어떻게 생각하니? 내가 읽고있는 파일은 city.dat (숫자, 2 글자, 인구, 표고)이고 road.dat는 (숫자, 숫자, 숫자)입니다. – zerrisk
String [] tokens = cities.nextLine(). split (delims); 콘솔 (가정)에서이 행의 입력을 받고 있습니다.이 입력은 null 또는 비어 있습니까? 또는 토큰 [0]이 비어있는 구분자 "구분자"가 있습니까? –