public class AddStrings {
    public String addStrings(String num1, String num2) {
        //定义一个StringBuffer,保存最终的结果
        StringBuffer result = new StringBuffer();

        //定义两个字符串的初始位置
        int i = num1.length()-1;
        int j = num2.length()-1;
        int carry = 0;//保存当前的进位


        //从个位开始依次遍历所有数位,只要还有数没有计算,就继续,其他树位为0
        while (i>=0||j>=0||carry!=0){
            //取两数当前的对应树位
            int n1 = i>=0?num1.charAt(i)-'0':0;
            int n2 = j>=0?num2.charAt(j)-'0':0;

            //对当前数进行求和
            int sum = n1+n2+carry;

            //把结果的个位保存到reault中,十位作为进位保存下来,等待下次计算
            result.append(sum%10);
            carry = sum/10;

            //移动指针,继续遍历下一位
            i--;
            j--;
        }
        return result.reverse().toString();
    }

    public static void main(String[] args) {
        String str1 = "123";String str2 = "123";
        AddStrings addStrings = new AddStrings();
        System.out.println(addStrings.addStrings(str1,str2));
    }
}