0

这应该取输入数字的长度并告诉它。我在 main 方法中有这个特定案例的打印语句,它们位于代码的顶部,以及它下面的实际方法代码。

case '1':
            System.out.printf("Enter an int number: %d\n",num);
            num = in.nextInt();
            setLength(num);
            System.out.printf("The length of %d is: %d\n",num, Program8.length);
            break;
...

 public static void setLength (int num) {
      int count = 0;
      while (num!=0) {
         num = num % 10;
         ++count;
      }
      Program8.length = count;
   }

当我键入其中一个测试用例时,即 Program8.setLength(0123400); Program8.length,我得到了正确的数字,但没有写正确的方式。我应该得到:

0123400的长度为:6

相反,我得到

0 的长度是:66,最后 6 个亮蓝色,好像我在初始化一个变量。我不确定如何以正确的格式获取它。

4

1 回答 1

0

如果这不是作业,并且我们不需要证明自己的实现,那么我们可以用 java 已经给我们的东西来解决这个问题;

Program8.length=Integer.toString(num).length();

但是,如果我们必须向某人展示我们自己的实现,那么这可以显示您在实现中遗漏了什么,@DevilsHnd 在上面的评论中已经指出了这一点;

/*
reportDigits(192837465);
reportDigits(19287465);
reportDigits(1927465);
reportDigits(193765);
reportDigits(37465);
*/    

    void reportDigits(int number) {
        System.out.print(number + " has ");
        int len = 0;
        while (number > 0) {
            len++;
            number /= 10;
            //number = ((number - number %10) / 10);
        }
        System.out.println(len + " digit(s)");
    }
于 2020-03-29T21:39:41.317 回答