public static String add(String s, String t) {
int a=0,b=0;
int s0 = s.length();
int t0 = t.length();
int i,m;
int n=Math.max(s0,t0) + 1;
char[] result = new char[n];
for (i=n-1; i>=0; i--)
{
if (i+s0-n>=0) a=Integer.parseInt(s.substring(i+s0-n,i+s0-n+1)); else a=0;
if (i+t0-n>=0) b=Integer.parseInt(t.substring(i+t0-n,i+t0-n+1)); else b=0;
m = a + b;
if (m>=10)
{
m-=10;
result[i-1] += 1;
}
result[i] += '0' + m;
}
return new String(result);
}