程序编译罚款,但是当我运行它,我得到一个错误,更具体地说是: java.lang.ArrayIndexOutOfBoundsException
:1“java.lang.ArrayIndexOutOfBoundsException:1”错误当运行
它越来越上的错误:
String name = array[1];
我不知道为什么。
这是有问题的代码:
infile = new Scanner(new FileReader("EmployeeData.TXT"));
while(infile.hasNext()){
String line = infile.nextLine();
String array[] = line.split(":");
String name = array[1];
String id = array[2];
double salary = Double.parseDouble(array[3]);
Employee e;
if (array[0].equals("s")){
e = new SalariedWorker(id, name, salary);}
else {
boolean overtime = Boolean.parseBoolean(array[4]);
if(overtime){
int maxhu = Integer.parseInt(array[5]);
e = new HourlyWorker(id, name, salary, maxhu);
}
else{
e = new HourlyWorker(id, name , salary);
}
}
company.add(e);
}
以供参考,这是程序的其余部分:
它读取名为 “EmployeeData.TXT” 这个文本文件:
S Washington,George 000001 125000
H MacDonald,Ronald 386218 7.80 true 40
H Walton,Samuel 268517 8.21 false
H Thomas,David 131313 9.45 true 38
H Sanders,HarlandDavid 277651 8.72 false
S Baron,James 368535 310236
几乎所有这些代码是不必要的。阅读如何制作[最小,完整,可验证的示例](http://stackoverflow.com/help/mcve)。 – 2014-11-05 21:04:55
通常人们发布的代码不够... – Grice 2014-11-05 21:08:05
问题在于线条的解析。你使用':'符号。但是你没有在你的生产线上。数组只有1个元素。不是两个。 'array [1]'是数组的第二个元素。它编译得很好,但在运行时中断。 – 2014-11-05 21:08:51