public static String add(String numStr1, String numStr2){
int numLen1 = numStr1.length();
int numLen2 = numStr2.length();
int[] numArray1 = new int[numLen1];
int[] numArray2 = new int[numLen2];
for(int i=0;i<numLen1;i++){
String c = numStr1.substring(i,i+1);
numArray1[numLen1-i-1] = Integer.parseInt(c);
}
for(int i=0;i<numLen2;i++){
String c = numStr2.substring(i,i+1);
numArray2[numLen2-i-1] = Integer.parseInt(c);
}
int minLen = 0;
int maxLen = 0;
int[] maxArray = null;
if(numLen1<numLen2){
minLen = numLen1;
maxLen = numLen2;
maxArray = numArray2;
}else{
minLen = numLen2;
maxLen = numLen1;
maxArray = numArray1;
}
int[] resultArray = new int[maxLen+1];
int added = 0;
int i=0;
for(;i<minLen;i++){
int t = numArray1[i]+numArray2[i]+added;
if(t>9){
added = 1;
resultArray[i] = t-10;
}else{
added = 0;
resultArray[i] = t;
}
}
for(;i<maxLen;i++){
int t = maxArray[i]+added;
if(t>9){
added = 1;
resultArray[i] = t-10;
}else{
added = 0;
resultArray[i] = t;
}
}
resultArray[i] = added;
StringBuilder builder = new StringBuilder();
for(int n=resultArray.length-1;n>=0;n--){
if(n==resultArray.length-1 && resultArray[resultArray.length-1]==0){
continue;
}else{
builder.append(resultArray[n]);
}
}
return builder.toString();
}
public static String subtract(String numStr1,String numStr2){
int numLen1 = numStr1.length();
int numLen2 = numStr2.length();
int[] numArray1 = new int[numLen1];
int[] numArray2 = new int[numLen2];
for(int i=0;i<numLen1;i++){
String c = numStr1.substring(i,i+1);
numArray1[numLen1-i-1] = Integer.parseInt(c);
}
for(int i=0;i<numLen2;i++){
String c = numStr2.substring(i,i+1);
numArray2[numLen2-i-1] = Integer.parseInt(c);
}
int minLen = 0;
int maxLen = 0;
int[] maxArray = null;
if(numLen1<numLen2){
minLen = numLen1;
maxLen = numLen2;
maxArray = numArray2;
}else