Any helpful tips would be much appreciated. Edit: I found a logic error so I remedied it with the code below but it is still failing to validate.
if(hexNumber != null && !hexNumber.equals("")) {
            for (int i = 0; i < hexNumber.length(); i++) {
                placeHolder = hex.indexOf(hexNumber.substring(i, i + 1));
                if(placeHolder != 0 && placeHolder != 1 && placeHolder != 2 && placeHolder != 3 && placeHolder != 4 && placeHolder != 5 && placeHolder != 6
                && placeHolder != 7) {
                    //Stores the remainder of the function, then adds it to the output variable in the reverse order that it is calculated
                    while (placeHolder != 0) {
                        ans = placeHolder % 2;
                        binary = ans + binary ;
                        placeHolder = placeHolder / 2;
                    }
                    binaryFinal = binaryFinal + binary;
                    binary = "";
                }else {
                    if(placeHolder == 1){
                        binaryFinal = binaryFinal + "0001";
                    }else if(placeHolder == 2){
                        binaryFinal = binaryFinal + "0010";
                    }else if(placeHolder == 3){
                        binaryFinal = binaryFinal + "0011";
                    }else if(placeHolder == 4){
                        binaryFinal = binaryFinal + "0100";
                    }else if(placeHolder == 5){
                        binaryFinal = binaryFinal + "0101";
                    }else if(placeHolder == 6){
                        binaryFinal = binaryFinal + "0110";
                    }else if(placeHolder == 7){
                        binaryFinal = binaryFinal + "0111";
                    }else {
                        binaryFinal = binaryFinal + "0000";
                    }
                }
            }
            while(binaryFinal.length() % 4 != 0) binaryFinal += "0";
            return binaryFinal;
        }