Alright, so my goal is to complete the following assignment:

"Design and implement an application that determines and prints the number of odd, even, and zero digits in an integer value read from the keyboard.

SPECIFICATION OF PROMPTS, LABELS AND OUTPUT : Your code should not have any prompt at all. The input to this program is a single integer . After the integer is read, the output consists of three lines. The first line consists of the number of odd digits in the integer followed by the label "odd digits". The second line consists of the number of even digits in the integer followed by the label "even digits". The third line consists of the number of zero digits in the integer followed by the label "zero digits". For example, if 173048 were read in, the output would be:
3 odd digits
3 even digits
1 zero digits
SPECIFICATION OF NAMES: Your application class should be called DigitAnalyst"

And the code I have produced is:

```
import java.util.Scanner;
public class DigitAnalyst{
public static void main(String[] args){
    Scanner scan = new Scanner(System.in);
    String num = scan.next();
    int odd_count = 0;
    int even_count = 0;
    int zero_count = 0;
    //input an int as a string, and set counter variables

    int[] num_array = new int[num.length()];
    //ready a array so we can so we can parse it sanely
    for (int i =0; i < num.length(); i++)
    {
        num_array[i] = num.charAt(i);
    }//fill the array with the values in the initial  number using a loop

    for ( int i=0;i< num_array.length; i++)
    {
        if (num_array[i] % 2 ==0)
        {
            if (num_array[i] ==0 )//the hell is going on here?
            {
                zero_count++;
            }
            else if (num_array[i] != 0)
            {
                even_count++;
            }
        }
        else if (num_array[i] % 2 != 0)
        {
            odd_count++;
        }
    }//use this loop to check each part of the array

    System.out.println(odd_count+ " odd digits");
    System.out.println(even_count+" even digits");
    System.out.println(zero_count+" zero digits");

}

```

}

And yet I keep getting the wrong output. More specifically, it returns the correct amount of odd numbers but it keeps counting 0 as an even and not as a zero.

I know where the problem is but I have no idea what is wrong, and I've spent a few hours on this. 
If someone could point me in the right direction I'd be ectstatic.