"Ввести с клавиатуры число. Определить, сколько в введенном числе четных цифр, а сколько нечетных." В первом варианте решения либо не учитывается "0" как четное, либо другое число, например, "999", считается как две нечетные цифры. В обоих случаях делится ноль на 2. В обоих случаях количество итераций соотносится с длинной строки (длинной массива). Помогите разобраться почему.
int a = Integer.parseInt(reader.readLine());
for (int i = 0; i < String.valueOf(a).length(); i++) {
    if (a % 2 == 0)
        even++;
    else
        odd++;
    a /= 10;
}
А вот в этом варианте "0" учитывается:
char[] chars = stringNumbers.toCharArray();
    	for (int i = 0; i < stringNumbers.length; i++) {
    	       	if(chars[i]%2==0) {
    			even++;
    		}
    		else if (chars[i]%2!=0) {
    			odd++;
    		}
    	}