Maison >Java >javaDidacticiel >Comment puis-je gérer de manière robuste les entrées entières invalides avec le scanner Java ?

Comment puis-je gérer de manière robuste les entrées entières invalides avec le scanner Java ?

Patricia Arquette
Patricia Arquetteoriginal
2024-12-13 13:48:15960parcourir

How Can I Robustly Handle Invalid Integer Input with Java's Scanner?

Surmonter les limitations d'entrée non valides du scanner

Dans le but d'améliorer la robustesse du programme, les utilisateurs sont confrontés à des défis pour restreindre la saisie à des valeurs entières valides et gérer les entrées non numériques. Une bibliothèque populaire, Scanner, offre une solution à ces obstacles.

Validating Integer Input

Scanner fournit la méthode hasNextInt(), qui vérifie si l'entrée à venir peut être interprété comme un entier. Cette méthode reste statique, ce qui implique qu'elle n'avance au-delà d'aucune entrée.

Exemple d'implémentation

L'incorporation de hasNextInt() permet une solution élégante :

Scanner sc = new Scanner(System.in);
System.out.print("Enter number 1: ");
while (!sc.hasNextInt()) sc.next(); // Skips non-numeric input
int num1 = sc.nextInt();
int num2;
System.out.print("Enter number 2: ");
do {
    while (!sc.hasNextInt()) sc.next(); // Skips non-numeric input
    num2 = sc.nextInt();
} while (num2 < num1); // Enforces num2 being greater than num1

Entrée exceptionnelle Gestion

Étant donné que les méthodes hasNextXXX restent statiques, il est nécessaire d'appeler next() pour éliminer tout "déchet" provenant d'une entrée non valide.

Questions connexes

  • [Comment puis-je empêcher Scanner de déclencher des exceptions en cas de saisie incorrecte types ?](https://java.stackexchange.com/questions/2600398/how-do-i-keep-a-scanner-from-throwing-exceptions-when-the-wrong-type-is-enter)

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn