Java: charAt convertir en int?
Je tiens à clé dans ma nirc
nombre par exemple S1234567I
et puis mettre 1234567
individualy comme un entier comme indiv1
comme charAt(1)
, indiv2
comme charAt(2)
, indiv
comme charAt(3)
, etc. Cependant, lorsque j'utilise le code ci-dessous, je n'arrive pas à obtenir même le premier numéro? Une idée?
Scanner console = new Scanner(System.in);
System.out.println("Enter your NRIC number: ");
String nric = console.nextLine();
int indiv1 = nric.charAt(1);
System.out.println(indiv1);
Vous devez vous connecter pour publier un commentaire.
Vous obtiendrez 49, 50, 51, etc hors - ceux sont les points de code Unicode pour les caractères '1', '2', '3' etc.
Si vous savoir qu'ils seront de l'Ouest de chiffres, vous pouvez juste soustraire '0':
Toutefois, vous devriez le faire seulement après que vous avez déjà validé ailleurs que la chaîne est au format correct, sinon vous vous retrouverez avec des données erronées - par exemple, 'A' finirait retour 17 au lieu de provoquer une erreur.
Bien sûr, une option est de prendre les valeurs et ensuite vérifier que les résultats sont dans la gamme de 0 à 9. Une alternative est d'utiliser:
Cela renvoie -1 si le caractère n'est pas approprié de chiffres.
Je ne suis pas sûr si cette dernière approche, qui couvrira non-Ouest de chiffres - la première ne sera certainement pas -, mais il semble que ce ne sera pas un problème dans votre cas.
Prendre un coup d'oeil à Caractère.getNumericValue(ch).
Je sais que la question est à propos de char en int, mais cela vaut la peine de mentionner, car il est négatif dans le char trop ))
De JavaHungry vous devez noter les nombres négatifs pour l'entier
si vous n'avez pas de wana, utilisez le Caractère.
Conversion de Chaîne de caractères en Entier : Pseudo-Code
public class StringtoInt {
int indiv1 = Integer.parseInt(nric.charAt(1));