Java:无法将数字零等于零

时间:2014-09-25 02:21:42

标签: 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.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!");
}

2 个答案:

答案 0 :(得分:1)

您尚未将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++;
}

答案 1 :(得分:0)

Character.getNumericValue(a);方法返回int。它不会隐式更改参数(在这种情况下,字符变量&#39; a&#39;)。

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