当前位置: 首页 > 知识库问答 >
问题:

Java:不能获得等于零的数字零

万俟英锐
2023-03-14

我正在创建一个程序,将确定和打印数字奇数,偶数和零在一个整数从键盘。我尝试了几种不同的方法,每种方法都得到了相同的结果。我无法让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!");
}

共有1个答案

哈襦宗
2023-03-14

尚未将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++;
}
 类似资料:
  • 问题内容: 我该如何忽略和制造? 问题答案: 分母之前检查分母是否为零。这样可以避免捕获异常的开销,如果您希望将其除以零,则可能会更有效率。

  • 有人知道是什么导致了这个问题吗?或者我该如何纠正这个问题?

  • 问题内容: 一些有趣的发现wrt等于0和0.0上的运算符 返回false,而返回true。 返回false,而返回true。 看起来在两种情况下都完成了字符串比较。谁能对此有所启发。 谢谢。 问题答案: BigDecimal“等于”比较值和小数位数。如果只想比较值(0 == 0.0),则应使用compareTo: 参见javadoc。 至于Double比较,如其他答案所述,您正在将Double与I

  • 问题内容: 我有一个包含许多字段的结构-我已经弄清楚了如何使用反射来提取字段名称,值和标签信息。我还想确定一个字段的值是否不同于该字段的默认值。 目前,我有这个(有效,但有点臭): 在我看来,在这种情况下应该有一种避免类型切换的方法-我正在尝试做的是建立一个字段/值映射,其值不同于默认的零值,例如: 是否有一种优雅的方式来实现这一目标? 谢谢! 问题答案: 对于支持相等操作的类型,您可以只比较包含

  • 问题内容: 给我数组数据的二进制String表示形式。 但是,我想要一种添加前导零的简单方法,因为等于零的字节数组为我提供了“ 0”字符串。 我想要这样的一线客: 是正确的方法吗?如果是,我应该使用什么字符串?提前致谢! 编辑:数组是动态长度,因此前导零的数目也应如此。 问题答案: 对于使用5个前导零填充,这将起作用: 您没有指定字符串的预期长度,在上面我使用5的示例代码中,将其替换为适当的值。

  • 问题内容: 我在ColdFusion代码中碰巧遇到了这些值,但Google计算器似乎有相同的“错误”,但差不为零。 416582.2850-411476.8100-5105.475 = -2.36468622461E-011 http://www.google.com/search?hl=zh_CN&rlz=1C1GGLS_enUS340US340&q=416582.2850+-+411476.8