Java 使用代码计算数字问题中的零数

Java 使用代码计算数字问题中的零数,java,if-statement,recursion,Java,If Statement,Recursion,我的代码在一个读入文本文件中计算错误的零数,我不知道如何修复它。随机数要么比我需要的多出一个,要么根本不读。有人能帮忙吗 private static int count0(int n, boolean zero) { if (n <= 0) return 0; else if (n % 10 == 0) return 1 + (zero ? 1 : 0) + count0(n / 10, true); else return count0(n / 10

我的代码在一个读入文本文件中计算错误的零数,我不知道如何修复它。随机数要么比我需要的多出一个,要么根本不读。有人能帮忙吗

private static int count0(int n, boolean zero) {
  if (n <= 0)
    return 0;
  else if (n % 10 == 0)
    return 1 + (zero ? 1 : 0) + count0(n / 10, true);
  else
    return count0(n / 10, false);
}

public static int count0(int n) {
  return count0(n, false);
}

enter code here
私有静态int count0(int n,布尔零){

如果(n去掉“零”,我们有

n为0-->计数0
否则,如果该数字为零,则添加1,并且
向左数零位数

私有静态int count0(int n){

如果(n
count0(100,false)
-->
1+count0(10,true)
-->
1+1+count(0,true)
-->
3
。我不明白你在用
zero
arg做什么。你已经在表达式的
1+
部分解释了一个零,你知道你可以把一个数字变成一个字符串,然后只计算“0”个字符吗?字符串化对我来说似乎不雅!这很有效,谢谢你的帮助,但我有一个好主意后续问题让我了解更多。如何编写代码让用户输入他们想要查找的数字?这里的一般规则是“发布新问题”,并显示到目前为止您尝试了什么。但您应该查看类,特别是方法。您还应该能够在StackOverflow上找到大量使用扫描仪的示例。顺便说一句,您通常应该“接受”最适合您的答案-它向其他人显示问题已经得到了回答(并给我一些“声誉”点)。谢谢,我提出了另一个问题并接受了你的回答!
private static int count0(int n) {
  if (n <= 0)
    return 0;
  else 
    return  (n % 10 == 0 ? 1 :0) + count0(n / 10);
}