I have made a few change in your BigInteger class.
Probably this might not be the most efficient way, but its working perfectly fine. I will try to make it better on weekend
package pkg;
import java.util.Scanner;
public class BigInteger {
private int[] NumC;
private int[] NumD;
private int[] result;
public BigInteger(){
NumC = null;
NumD = null;
result = null;
}//Assessor
public void Input(){
Scanner keyboard = new Scanner(System.in);
String aa;
String bb;
System.out.println();
System.out.print("Enter First Number: ");
aa = keyboard.nextLine();
NumC = convertArray(aa);
setNumC(NumC);
System.out.print("Enter Second Number: ");
bb = keyboard.nextLine();
NumD = convertArray(bb);
setNumD(NumD);
System.out.println();
System.out.print(" ");
print(NumC);
System.out.print(" + ");
print(NumD);
System.out.print(" = ");
Add(NumC,NumD);
}// Input
public BigInteger(int[] a,
int[] b,
int[] c){
this.NumC = a;
this.NumD = b;
this.result = c;
}//Constructor
public void setNumC (int[] a){
NumC = a;
}//Mutator NumC
public void setNumD (int [] b){
NumD = b;
}//Mutator NumD
public void setResult (int[] c){
result = c;
}//Mutator NumC
public static int[] convertArray(String b){
int[]arr = new int[b.length()];
for (int i = 0; i < b.length(); i++){
arr[i] = Character.digit(b.charAt(i),10);
}
return arr;
}//end of toArray
public static void flipArray(int[] b) {
int left = 0;
int right = b.length-1;
while (left < right) {
int temp = b[left];
b[left] = b[right];
b[right] = temp;
left++;
right--;
}
}//FilpArray
public void Add (int[]a,int[]b){
int sum = 0;
//Swap(a,b);// makes b[] the smaller array
flipArray(a); // filps array
flipArray(b); // 123 becomes 321
int[] arr1,arr2;
if(a.length<b.length)
{
arr1 = …