Solo quiero saber si hay una mejor solución para analizar un número de un carácter en una cadena (suponiendo que sepamos que el carácter en el índice n es un número).
String element = "el5";
String s;
s = ""+element.charAt(2);
int x = Integer.parseInt(s);
//result: x = 5
(Inútil decir que es solo un ejemplo)
'0', '1', '2', ...
in ascii son ascendentes. Entonces, por ejemplo, '0' en ascii es 48, '1' es 49, etc. Entonces, si lo tomas'2' - '0'
, realmente obtienes50 - 48 = 2
. Eche un vistazo a una tabla ASCII para comprender mejor este principio. Además,'x'
significa obtener el valor ASCII del personaje en Java.- '0'
trabajado ... pensé que era un poco de magia profunda en la manera de Java interpreta personajes o lo que sea ... Esto fue realmente un caso de mí más de lo que complica algo ...Character.getNumericValue
Probablemente sea lo mejor desde el punto de vista del rendimiento, pero es difícil:
Funciona si asumes que tu personaje es un dígito, y solo en idiomas que siempre usan Unicode, como Java ...
fuente
"el५"
donde५
está el dígito 5 en India. :)'0'
devuelve el valor entero?Simplemente restando por char '0' (cero) un char (del dígito '0' a '9') se puede convertir en int (0 a 9), por ejemplo, '5' - '0' da int 5.
fuente
fuente
Usando binario
AND
con0b1111
:fuente
Restando el valor ascii de '0' = 48 de char
fuente