Dada la sugerencia correcta, creo que la mayoría de las personas con educación secundaria pueden resolver esto por sí mismas. Todo el mundo sabe 134 = 100x1 + 10x3 + 1x4
La parte clave de la mayoría de la gente se pierda, es que si haces algo como esto en Java
System.out.println('0'*1);//48
que captará la representación decimal de carácter 0 en ascii chart y se multiplica por 1
En ascii table, el carácter 0 tiene una representación decimal de 48. Por lo tanto, la línea anterior imprimirá 48. De modo que si hace algo como '1' - '0' Eso es lo mismo que 49-48. Como en el gráfico ascii, los caracteres 0-9 son continuos, por lo que puede tomar cualquier carácter de 0 a 9 y restar 0 para obtener su valor entero. Una vez que tienes el valor entero para un personaje, entonces convertir toda la cadena a int es sencillo.
Aquí hay otra solución al problema
String a = "-12512";
char[] chars = a.toCharArray();
boolean isNegative = (chars[0] == '-');
if (isNegative) {
chars[0] = '0';
}
int multiplier = 1;
int total = 0;
for (int i = chars.length - 1; i >= 0; i--) {
total = total + ((chars[i] - '0') * multiplier);
multiplier = multiplier * 10;
}
if (isNegative) {
total = total * -1;
}
Copiar y pegar el código de 'entero. parseInt() 'si no quieres usarlo. ¿Por qué un requisito tan absurdo? –
Wow. Cuatro personas respondieron sin leer la pregunta en menos de dos minutos. Muy sorprendente:) – TacticalCoder
@JB Nizet: iba a comentar exactamente eso (pegando el código * parseInt *). Puede ser tarea ... Y * "aprender a programar" * nunca es un requisito absurdo:) – TacticalCoder