整体步骤:
- 先将两个字符串反转,然后把两个字符串长度补全,补成一致长度,长度短的右补0;
- 循环相加,将结果%10的余位放在低位,结果的/10的结果放在高位;最终合并结果返
示例:
输入:String a=243,String b=564 输出:708 原因:342 + 465 = 807
代码实现:
public static String arrayAdd(String a, String b) {
StringBuilder s1 = new StringBuilder(a).reverse();
StringBuilder s2 = new StringBuilder(b).reverse();
StringBuilder result = new StringBuilder();
int aLength = s1.length();
int bLength = s2.length();
int len;
if (aLength < bLength) {
len = bLength;
int count = bLength - aLength;
while (count-- > 0) {
s1.append('0');
}
} else {
len = aLength;
int count = aLength - bLength;
while (count-- > 0) {
s2.append('0');
}
}
int extra = 0;
for (int i = 0; i < len; i++) {
int add = extra + Integer.parseInt(String.valueOf(s1.charAt(i))) + Integer.parseInt(String.valueOf(s2.charAt(i)));
extra = (add / 10);
result.append(add % 10);
}
if (next > 0) {
result.append(next);
}
return result.reverse().toString();
}