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
Libérer: 2024-12-13 13:48:15
original
917 Les gens l'ont consulté

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
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal