Eu só quero saber se existe uma solução melhor para analisar um número de um caractere em uma string (supondo que sabemos que o caractere no índice n é um número).
String element = "el5";
String s;
s = ""+element.charAt(2);
int x = Integer.parseInt(s);
//result: x = 5
(inútil dizer que é apenas um exemplo)
'0', '1', '2', ...
em ascii estão aumentando . Assim, por exemplo, '0' em ASCII é 48, '1' é de 49, etc. Então, se você tomar'2' - '0'
você realmente só pegar50 - 48 = 2
. Veja uma tabela ASCII para entender melhor esse princípio. Além disso,'x'
significa obter o valor ascii do caractere em Java.- '0'
funcionou ... Eu pensei que era um pouco de magia profunda na forma como Java interpretado caracteres ou qualquer outra coisa ... essa é realmente foi um caso de me mais complica algo ...Character.getNumericValue
Provavelmente é o melhor do ponto de vista do desempenho, mas é difícil:
Funciona se você assumir que seu personagem é um dígito e apenas em idiomas sempre usando Unicode, como Java ...
fonte
"el५"
onde५
está o dígito 5 na Índia. :)'0'
retornar o valor inteiro?Simplesmente subtraindo pelo caractere '0' (zero), um caractere (do dígito '0' para '9') pode ser convertido em int (0 a 9), por exemplo, '5' - '0' fornece int 5.
fonte
fonte
Usando binário
AND
com0b1111
:fonte
Subtraindo o valor ascii de '0' = 48 de char
fonte