嗨我遇到了掃描儀方法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