Je veux juste savoir s'il y a une meilleure solution pour analyser un nombre à partir d'un caractère dans une chaîne (en supposant que nous savons que le caractère à l'index n est un nombre).
String element = "el5";
String s;
s = ""+element.charAt(2);
int x = Integer.parseInt(s);
//result: x = 5
(inutile de dire que ce n'est qu'un exemple)
'0', '1', '2', ...
in ascii sont croissantes. Par exemple, «0» en ascii est 48, «1» est 49, etc. Donc, si vous prenez,'2' - '0'
vous obtenez vraiment juste50 - 48 = 2
. Jetez un œil à une table ASCII afin de mieux comprendre ce principe. En outre,'x'
signifie obtenir la valeur ascii du caractère en Java.- '0'
ça fonctionnait ... Je pensais que c'était une magie profonde dans la façon dont Java interprétait les caractères ou quoi que ce soit ... c'était vraiment un cas pour moi de compliquer quelque chose ...Character.getNumericValue
C'est probablement le meilleur du point de vue des performances, mais c'est rude:
Cela fonctionne si vous supposez que votre personnage est un chiffre, et uniquement dans les langues utilisant toujours Unicode, comme Java ...
la source
"el५"
où se५
trouve le chiffre 5 en Inde. :)'0'
renvoyer la valeur entière?En soustrayant simplement par char '0' (zéro) un char (du chiffre '0' à '9') peut être converti en int (0 à 9), par exemple, '5' - '0' donne int 5.
la source
la source
Utilisation du binaire
AND
avec0b1111
:la source
Soustraire la valeur ascii de «0» = 48 du caractère
la source