Comment puis-je convertir scanner d'entrée en un nombre entier?
En Java, comment, si possible, puis-je convertir numérique scanner d'entrée (par exemple 2 ou 87) dans une variable de type entier? Ce que je suis en utilisant le produit maintenant le message d'erreur:
Exception in thread "main" java.lang.NumberFormatException: null
at java.lang.Integer.parseInt(Unknown Source)
at java.lang.Integer.valueOf(Unknown Source)
at diDecryption.Didecryption.main(Didecryption.java:226)
Et c'est le code que j'utilise pour le faire (reconstitué, il est partie d'un grand programme):
System.out.println("Enter first number");
Scanner sc=new Scanner(System.in);
String name=sc.next();
int result = Integer.valueOf(name);
if (result / 2 == 1){
System.out.println("a");
Le but du programme est de décoder un message chiffré. L'entrée est numérique, et si je retire le string en int convertisseur, la division ne fonctionne pas. Comment puis-je résoudre ce problème?
- Votre code fonctionne très bien pour moi si je lui donne un numéro. Ce qui, exactement, sont vous fournir en entrée sur système? (Le message d'erreur que vous avez posté indique que vous essayez d'analyser
null
) - Quel est votre avis ? Le code semble bien pour moi. ideone.com/omNdEF
- Je doute que votre message d'exception correspond à votre code. Scanner méthodes ne renvoient pas
null
. Ils vont lancer une exception si il n'y a rien à lire. Veuillez fournir une un minimum de reproductibles exemple. - Les étapes à ne pas reproduire la cité problème.
Vous devez vous connecter pour publier un commentaire.
parseint il prend la forme d'une primitive int plutôt que d'un objet Integer
Integer
retourné parvalueOf()
.Si votre entrée est numérique, il est préférable d'utiliser directement la méthode
Dans votre stacktrace vous avez
null
comme paramètre dansInteger.valueOf(name)
.Semble votre console de produire certains invalides de la séquence d'entrée.
Essayez de vérifier avec
sc.hasNext()
condition:Essayer
EXÉCUTER
Essayer ce code