Continuando con la serie de operaciones con numeros grandes, desarrollo la implementacion de una suma de valores contenidos en una cadena, la cual nos puede evitar el desboramiento de bufer. Realizando un ligero analisis encontramos que seguimos limitados por el manejo de indices de arreglos, ya que solo nos permite indexarlos con numeros enteros.
Suma.java
...
private static String sumar(String a, String b) {
//Validaciones
...
int x, y, result = 0;
int limite = a.length() > b.length() ? a.length() : b.length();
char[] tmp = new char[limite + 1];
for (int i = 1; i <= limite; i++){
x = i <= a.length() ? a.charAt(a.length() - i) - '0' : 0;
y = i <= b.length() ? b.charAt(b.length() - i) - '0' : 0;
result += x + y;
tmp[tmp.length - i] = (char) ((result % 10) + '0');
result /= 10;
}
if ( result > 0){
tmp[0] = (char) ((result % 10) + '0');
return String.valueOf(tmp);
}
return String.valueOf(tmp, 1, tmp.length -1);
}