两个大数相加
public class Main {
public static void main(String[] args) {
String str1="125567673456";
String str2="32434564";
String result = MaxNumberAdd(str1,str2);
System.out.print(result);
}
private static String MaxNumberAdd(String str1,String str2){
if(str1==null || "".equals(str1)){
return str2;
}
if(str2==null || "".equals(str2)){
return str1;
}
int MaxString = Math.max(str1.length(),str2.length());
StringBuffer res = new StringBuffer(MaxString+1);
str1 = new StringBuffer(str1).reverse().toString();
str2 = new StringBuffer(str2).reverse().toString();
int MinString = Math.min(str1.length(),str2.length());
int num0fJinWei =0;
int i=0;
for(;i<MinString;i++){
int number = str1.charAt(i) + str2.charAt(i) - 2*'0'+num0fJinWei;
int currentNumber = number % 10;
num0fJinWei = number/10;
res.append(String.valueOf(currentNumber));
}
if(str1.length()<str2.length()){
str1 = str2;
}
for(;i<str1.length();i++){
int number = str1.charAt(i)-'0'+num0fJinWei;
num0fJinWei = number/10;
int currentNumber = number%10;
res.append(String.valueOf(currentNumber));
}
if(num0fJinWei>0){
res.append(String.valueOf(num0fJinWei));
}
return res.reverse().toString();
}
}