J'ai une classe que j'ai écrite en Java et l'une des méthodes est getCommand() Le but de cette méthode est de lire une chaîne et de voir ce que l'utilisateur tapé correspond à l'une des commandes acceptables .Application d'une entrée valide en Java
Voici comment je l'ai écrit d'abord:
public char getCommand(){
System.out.println("Input command: ");
command = input.nextLine();
while(command.length() != 1){
System.out.println("Please re-enter input as one character: ");
command = input.nextLine();
}
while( command.substring(0) != "e" ||
command.substring(0) != "c" ||
command.substring(0) != "s" ||
command.substring(0) != "r" ||
command.substring(0) != "l" ||
command.substring(0) != "u" ||
command.substring(0) != "d" ||
command.substring(0) != "k" ||
command.substring(0) != "f" ||
command.substring(0) != "t" ||
command.substring(0) != "p" ||
command.substring(0) != "m" ||
command.substring(0) != "q"){
System.out.println("Please enter a valid character: ");
command = input.nextLine();
}
fCommand = command.charAt(0);
return fCommand;
}
Maintenant, je vois le problème est que, depuis que j'utilise l'opérateur OR, il ne sera pas échapper à cette boucle parce que le caractère de type I dans la volonté toujours pas égal l'un d'entre eux. J'ai essayé de le changer à l'opérateur ET, mais le même problème. Quel serait le meilleur moyen d'accepter uniquement ces caractères spécifiques? Très apprécié.
Peut-être une bonne idée de convertir la commande en majuscules ou en minuscules, car il valide les données –
Bien travaillé. J'ai essayé d'utiliser && plus tôt, et cela n'a pas fonctionné. J'ai découvert que c'était parce que je n'avais pas sauvegardé le fichier après avoir changé les opérateurs. Merci beaucoup pour la réponse! – Seephor
et pour différents cas, je viens d'utiliser command.toLowerCase() après avoir lu dans la chaîne. – Seephor