Alguém saberia me dizer por que o código abaixo retorna ‘51’ ao invés de retornar ‘3’ ? public void teste() {
String registro = "93847568593";
int[] numeros = new int[11];
for (int i = 0; i < 11; i++) {
numeros[i] = (int) (registro.charAt(i));
}
System.out.println("numero digitado " + numeros[10]);
}
Quando vc faz o registro.charAt(i) da String, vc está pegando o valor no formato de char (vc está pegando a posição da tabela Unicode que representa este valor).
Se você olhar na tabela Unicode ou ASCII o valor do número 3 está na posição 51, por isso ele guardou dentro do vetor de números o valor 51.
Uma das formas que vc pode converter este número 51 (posição da tabela Unicode) para o valor 3:
numeros[i] = Character.digit(registro.charAt(i), 10);
[quote=ddso]
numeros[i] = (int) (registro.charAt(i));
[/code][/quote]
descobri: o método charAt retorna um char, que convertido em int, retorna a posição dele na tabela ASC!
alguem tem algo a acrescentar?
[quote=rsakurai]Quando vc faz o registro.charAt(i) da String, vc está pegando o valor no formato de char (vc está pegando a posição da tabela Unicode que representa este valor).
Se você olhar na tabela Unicode ou ASCII o valor do número 3 está na posição 51, por isso ele guardou dentro do vetor de números o valor 51.
[/quote]
obrigado! publicamos quase ao mesmo tempo a resposta! rs… mas a sua resposta foi mais esclarecedora ainda! vlw