嗨我遇到了扫描仪方法hasNextDouble()
的问题。 我的代码从文件中读取并创建一个要添加到数组中的对象Vehicle
。车辆类别具有名为OversizedVehicle
的子类别,并具有附加的double
字段以指示其高度。这就是为什么我使用if (hasNextDouble())
,所以如果扫描器读取double
它将创建OversizedVehicle
对象而不是Vehicle
。这里是我的代码:hasnextdouble不读我的下一个双文件
while(s1.hasNext())
{
regNo = s1.next();
make = s1.next();
year = Integer.parseInt(s1.next());
description = s1.next();
if(s1.hasNextDouble() == true) {
height = s1.nextDouble();
vehicle = new OversizedVehicle(regNo,make,year,description,height);
}
else {
vehicle = new Vehicle(regNo, make, year, description);
}
System.out.println("New vehicles from file added to array in position " + count);
vehicles[count] = vehicle;
count++;
}
我使用的Eclipse IDE中,当我在调试模式下运行这个if
语句总是评估为true
,错误地把下一个regNo
输入到height
变量。即使在输入中,该值不是double
,而是int
。我不确定发生了什么问题。
你的输入文件是什么样的? – unjankify
请大写并加上段落这个无法理解的混乱,并定义'hasNextDouble()'不读取我的下一个double。'会发生什么呢? – EJP