这应该获取输入数字的长度并告诉它。我在主方法中有针对此特定情况的打印语句,这些语句位于代码的顶部,而实际的方法代码位于其下方。
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个亮蓝色,就像我正在初始化一个变量一样。我不确定如何获得正确的格式。
最佳答案
如果这不是作业,并且我们不需要证明我们自己的实现,那么我们可以用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)");
}
关于java - 虽然循环适用于交互 Pane ,但不完全适用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60877163/