Java:无法获取等于零的数字零

Java:无法获取等于零的数字零,java,Java,我正在创建一个程序,该程序将确定并从键盘打印整数中的奇数、偶数和零位数。我尝试了几种不同的方法,每种方法都得到了相同的结果。我无法让java将0识别为0,而只能将其识别为偶数。例1005将给出2个赔率和2个偶数 public static void main(String[] args) { int odd = 0; int even = 0; int zero = 0; int input; Scanner scan = new Scanner (System.

我正在创建一个程序,该程序将确定并从键盘打印整数中的奇数、偶数和零位数。我尝试了几种不同的方法,每种方法都得到了相同的结果。我无法让java将0识别为0,而只能将其识别为偶数。例1005将给出2个赔率和2个偶数

public static void main(String[] args) {
    int odd = 0;
    int even = 0;
    int zero = 0;
    int input;
Scanner scan = new Scanner (System.in); 

System.out.println("Input an integer please: ");
input = scan.nextInt();

System.out.println("Your number is: " + input);

String x = Integer.toString(input);

for (input = 0; input < x.length(); input++){
    char a = x.charAt(input);        
  System.out.println(a);

  Character.getNumericValue(a);

  if (a==0){
    System.out.println ("+1 Zero");
    zero++;
}
else if (a%2 == 0 && a>1){
    System.out.println("+1 Even");
    even++;
}
else {
    System.out.println("+1 Odd");
    odd++;
}

}
System.out.println("There are " + odd + " odd numbers!");
System.out.println("There are " + even + " even numbers!");
System.out.println("There are " + zero + " zero numbers!");
}
publicstaticvoidmain(字符串[]args){
int奇数=0;
int偶数=0;
int零=0;
int输入;
扫描仪扫描=新扫描仪(System.in);
System.out.println(“请输入一个整数:”);
输入=scan.nextInt();
System.out.println(“您的号码是:“+input”);
字符串x=整数.toString(输入);
用于(输入=0;输入1){
System.out.println(“+1偶数”);
偶数++;
}
否则{
系统输出打印项次(“+1奇数”);
奇数++;
}
}
System.out.println(“有“+奇数+”奇数!”);
System.out.println(“有“+偶数+”偶数!”);
System.out.println(“有”+zero+“零个数字!”);
}

您尚未将Character.getNumericValue(a)分配给int值

  char a = x.charAt(input);        
  System.out.println(a);

 int y= Character.getNumericValue(a);

  if (y==0){
    System.out.println ("+1 Zero");
    zero++;
}
else if (y%2 == 0 && y>1){
    System.out.println("+1 Even");
    even++;
}
else {
    System.out.println("+1 Odd");
    odd++;
}
该方法返回一个
int
。它不会隐式更改参数(本例中为字符变量“a”)


因此,您应该比较getNumericValue方法的返回值,而不是原始字符。

首先将字符a转换为int