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)); } }