这个问题在这里已经有了答案:
What causes a java.lang.ArrayIndexOutOfBoundsException and how do I prevent it?
(26 个回答)
5年前关闭。
我的程序从 txt 文件中读取,然后将 txt 信息转换为汽车对象并将它们添加到数组列表中。
try {
String filePath = "car.txt";
File f = new File(filePath);
Scanner sc = new Scanner(f);
List<Car> car = new ArrayList<Car>();
while(sc.hasNextLine()){
String newLine = sc.nextLine();
String[] details = newLine.split(" ");
String brand = details[0];
String model = details[1];
double cost = Double.parseDouble(details[2]);
Car c = new Car(brand, model, cost);
Car.add(c);
}
但是,如果 txt 文件中的一行不包含这三个组件,则它会崩溃。我将如何检查该行是否包含所有 3 个组件,如果不打印则终止?
堆栈跟踪 -
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 2
at Main.loadPerson(Main.java:31)
at Main.main(Main.java:12)
最佳答案
您需要检查 length
详情为3,如果不退出如下图:
String[] details = newLine.split(" ");
if(details.length != 3) {
System.out.println("Incorrect data entered !! Please try again !!! ");
return;
} else {
String brand = details[0];
String model = details[1];
double cost = Double.parseDouble(details[2]);
Car c = new Car(brand, model, cost);
Car.add(c);
}
关于java - 从txt文件读取时的错误处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40564588/