两个超长的字符串数字相加

String ss = addString("349347939847777338393739999","232323335865673")

ss = 349347939848009661729605672;
public String addString(String str1,String str2){
  if (TextUtils.isEmpty(str1)) {
    return str2;
  }
  if (TextUtils.isEmpty(str2)) {
    return str1;
  }
  int length1 = str1.length()-1;
  int length2 = str2.length()-1;
  int carry = 0;
  StringBuilder stringBuilder = new StringBuilder();
  while (length1 >=0 || length2 >=0) {
    int num1 = length1>=0?str1.charAt(length1)-'0':0;
    int num2 = length2>=0?str2.charAt(length2)-'0':0;
    int temp = num1 + num2+carry;
    carry = temp/10;
    stringBuilder.append(temp%10);
    length1--;
    length2--;
  }
  if (carry >0) {
    stringBuilder.append(carry);
  }
  return stringBuilder.reverse().toString();
}

你可能感兴趣的:(java-算法,java)