Ver Mensaje Individual
  #5 (permalink)  
Antiguo 20/04/2013, 00:24
Avatar de chuidiang
chuidiang
Colaborador
 
Fecha de Ingreso: octubre-2004
Mensajes: 3.774
Antigüedad: 20 años, 3 meses
Puntos: 454
Respuesta: Duda dudosa. (casteo)

Hola:

Un char se representa internamente como un byte, según la tabla ascii http://ascii.cl/es/ . El símbolo '1' corresponde al valor ASCII 49. Si tu en java asignas un char a un entero, te está dando el valor de ese byte

int a = '1'; // a vale 49

y si tuvieras una letra, como 'A', daría igualmente un valor, en este caso 65.

Si tienes un String, tienes varios caracteres (o uno solo), si tienes "10" tienes dos bytes, el 49 y el 48, según la tabla ascii anterior. Java no sabe convertir esos dos bytes seguidos 49 y 48 a un solo valor entero.

Por ello, si quieres el valor numérico que se "ve" en la cadena (el 1 en '1' o el 10 en "10") y no el valor ascii de los bytes, debes usar el método parseInt() de Integer

Se bueno.
__________________
Apuntes Java
Wiki de Programación