Salut J'ai des problèmes avec la méthode du scanner hasNextDouble()
. Mon code lit à partir d'un fichier et crée un objet Vehicle
, à ajouter à un tableau. La classe de véhicule a une sous-classe appelée OversizedVehicle
, avec un champ supplémentaire double
pour indiquer sa hauteur. C'est pourquoi j'utilise le if (hasNextDouble())
donc si le scanner lit un double
il créerait un objet OversizedVehicle
au lieu de Vehicle
. Voici mon code:hasnextdouble pas lu mon prochain double dans un fichier
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++;
}
J'utilise l'IDE Eclipse et quand je lance ce en mode débogage l'instruction if
évalue toujours true
, en mettant correctement la prochaine regNo
dans l'entrée dans la variable height
. Même si dans l'entrée cette valeur n'est pas un double
, mais un int
. Je ne suis pas sûr de ce qui ne va pas.
À quoi ressemble votre fichier d'entrée? – unjankify
Veuillez mettre en majuscule et ponctuer et parser ce désordre inintelligible, et définir 'hasNextDouble() 'ne pas lire mon double suivant.' Qu'est-ce qui se passe à la – EJP