字符串相加,考虑两个问题,一,进位,二,取值。
我们平常相加的时候,都是从后往前加,那字符串里面的位置不一样,他是按照0,1这样排的,我们要取最后面的话,就要是num.length()-1,这样才能取到最末尾的数字,然后,还要考虑结束情况,比如一个是3位数,一个是2位数。你要相加的话,就要把2位数的第三位置0.
public String addStrings(String num1, String num2) {
StringBuilder builder = new StringBuilder();
int carry = 0;
for (int i = num1.length() - 1, j = num2.length() - 1;
i >= 0 || j >= 0 || carry != 0;
i--, j--) {
int x = i < 0 ? 0 : num1.charAt(i) - '0';
int y = j < 0 ? 0 : num2.charAt(j) - '0';
int sum = (x + y + carry) % 10;
builder.append(sum);
carry = (x + y + carry) / 10;
}
return builder.reverse().toString();
}