【发布时间】:2018-03-08 15:47:21
【问题描述】:
下面的代码有问题,当我在编译后运行它时,在线程“main”java.lang.NumberFormatException:空字符串中抛出异常。
import java.io.File;
import java.util.Scanner;
import java.io.FileNotFoundException;
class DamArrayApp {
int num = 0;
ObjDam[] data = new ObjDam[211];
public void populateArray() {
try {
Scanner s = new Scanner(new File("DamLevels.csv"));
String firstLine = s.nextLine();
while (s.hasNext()) {
String all = s.nextLine();
String[] temp = all.split(",");
String name = temp[2];
double fscNum = Double.parseDouble(temp[10]);
double damlvl = Double.parseDouble(temp[25]);
data[num] = new ObjDam(name, fscNum, damlvl);
num++;
}
} catch (FileNotFoundException e) {
System.err.println("File was not found. Please make sure the file exists!");
}
System.out.println(data);
}
public void printDam(String damName) {
boolean find = false;
for (int i = 0; i < 211; i++) {
ObjDam dam = data[i];
if (dam.getDamName() == damName) {
System.out.println("Dam Name: " + dam.getDamName()
+ ", FSC: " + dam.getFsc()
+ ", Dam Level: " + dam.getDamLevel());
find = true;
}
}
if (find == false) {
System.out.println("The dam ___ you entered cannot be found in the file");
}
}
public void printAllDams() {
}
public static void main(String[] args) {
DamArrayApp run = new DamArrayApp();
run.populateArray();
}
}
我认为问题在于 populateArray() 方法。有任何想法吗? 注意:该文件包含有关大坝及其水位的大量详细信息,均以逗号分隔。
任何帮助将不胜感激。
【问题讨论】:
-
请注意,您可能需要
while(s.hasNextLine())而不是while(s.hasNext())。 -
这是一个非常具体的错误消息。你不明白怎么办?堆栈跟踪甚至应该告诉你行号。
-
现在解决了,谢谢。对 Java 有点新,但你是对的,它确实告诉了我
标签: java arrays string exception