Counting the amount of zeroes, odd and even numbers in an integer

Code :

public class NumSearch {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int input;
int i=0,g=0,f=0;
int even = 0;
int odd = 0;
int zero = 0;
String temp = "";
System.out.println("Enter a number: ");
input = scan.nextInt();
temp = Integer.toString(input);
while(i <= (temp.length()-1)){
if(temp.charAt(i) == 0){
zero++;
i++;
}else{
i++;
}
}
while(f <=(temp.length()-1)){
if((temp.charAt(f) % 2) != 0){
odd++;
f++;
}else{
f++;
}
}
while(g <= (temp.length()-1)){
if((temp.charAt(g) %2) == 0 ){
even++;
g++;
}else{
g++;
}
}
System.out.println("The number of 0's: " + zero + "\nThe number of odd's: " + odd
+ "\nThe number of even's: " + even);
}
}

This code is not counting the amount of zeroes in the integer. Can anyone see why?

Thanks!

Re: Counting the amount of zeroes, odd and even numbers in an integer

Quote:

This code is not counting the amount of zeroes in the integer.

Can you post the console that shows the input and output from your program?

One thing I see is that you do not understand the difference between a character and an int.

The char '0' does not have the integer value of 0. Look at the ASCII character integer values table.

When testing for the character zero compare against '0' not 0

Re: Counting the amount of zeroes, odd and even numbers in an integer

Comparing it to '0' worked this time... I tried that earlier, but the code didn't compile.

Thanks!