web-dev-qa-db-fra.com

Exception dans le thread "principal" Java.lang.NumberFormatException: pour la chaîne d'entrée: "S"

Je reçois cette erreur lorsque j'essaie d'utiliser Integer.parseInt () avec un seul caractère.

String s = "s";
System.out.println((char) Integer.parseInt(s));

Est-ce que ce qui me donne l'erreur est la suivante:

Exception in thread "main" Java.lang.NumberFormatException: For input string: "S"
11
Mattias S

La lettre S n'est pas un chiffre. Vouliez-vous écrire le nombre 5?

String s = "5";
System.out.println((char) Integer.parseInt(s));

Ou avez-vous voulu imprimer la valeur ASCII ou Unicode du caractère S

char s = 's';
System.out.println((int) s);
29
Joni

parseInt(String s) est utilisé pour convertir des entiers sous forme de chaîne comme "42" en valeur qu'ils représentent en décimal. Utilisez String.charAt(0) si vous voulez le premier caractère.

1
Oleg Pyzhcov

oui bien sûr .. Integer.parseInt peut uniquement représenter sous forme de nombres entiers des chaînes numériques.Try:

String s = "98"

0
darxtrix

Pour analyser une chaîne en un nombre, vous devez avoir un nombre valide dans la chaîne.

Ici, votre S n'est pas un nombre.

String s = "s"; System.out.println((char) Integer.parseInt(s));

Cela devrait être quelque chose comme ça:

String s = "100";//or whatever integer you want to parse.
System.out.println((char) Integer.parseInt(s));
0
mawia

cela n'a rien à voir avec une valeur unique ou multichar. Un simple test de ceci est que, si vous supprimez le '(guillemets) de la valeur, trouverez-vous un Integer? 

Si non, la Integer.parseiInt() est vouée à l'échec.

Je vous recommande d’aller dans un tutoriel très rapide et bref situé à http://www.tutorialspoint.com/Java/number_parseint.htm

0
Gyanendra Dwivedi