Comment vérifier si l'entrée est un nombre entier?
Je suis prise d'entrée comme un entier à l'aide du Scanner de la classe. comme ceci:in.nextInt();
J'ai besoin de demander "saisie erronée" si l'utilisateur a entré dans un nombre à virgule flottante ou d'un caractère ou une chaîne.
Comment puis-je y arriver ?
- avez-vous regardé dans
try-catch
déclarations? - Avez-vous lu la documentation sur
Scanner.nextInt()
: doc.java.sun.com/DocWeb/api/java.util.Scanner? - non, comment puis-je l'utiliser pour le faire fonctionner ?
Scanner#nextInt()
est probablement la moins souhaitable chose que vous pourriez faire pour recevoir une entrée d'utilisateur en raison du manque de robustesse. Par exemple, si l'utilisateur entre quelque chose qui ne peut pas être analysé en un nombre entier, le programme plantera.- Je ne sais pas quel est le plus populaire de la norme de la lecture des commentaires d'un utilisateur en java, mais vous pouvez clairement prévenir
nextInt()
de plantage de votre programme. - double possible de pour Vérifier si une chaîne est un nombre entier - Java
- double possible de Déterminer si une Chaîne est un nombre Entier en Java
Vous devez vous connecter pour publier un commentaire.
nextInt()
ne peut retourner unint
si leInputStream
contient unint
que la prochaine lisible jeton.Si vous souhaitez valider la saisie, vous devez utiliser quelque chose comme
nextLine()
lire l'intégralité d'unString
, et l'utilisationInteger.parseInt(thatString)
pour vérifier si il est un entier.La méthode de jeter une
Comme je l'ai mentionné dans les commentaires, essayez d'utiliser le
try-catch
déclarationLe mettre dans un try-catch corps.