计算整数位数

时间:2018-05-22 21:25:19

标签: java arrays int

我的代码应该提示用户输入一个整数并计算整数中每个数字的出现次数。但它什么也没输出。请帮忙,这是我的代码。

import java.util.Scanner;

    public class NumberCounts {

    public static void main(String [] args) {
         Scanner scan = new Scanner(System.in);

         int arr [] = new int [10];
         int num;
         int outcome;

         System.out.println(" Enter a number: "); 
         num = scan.nextInt();

         while ( num != 0){
             outcome = num % 10;
             arr[num % 10]+=1;
             num /= num;
         }

         for ( int i = 0; i <= arr.length; i++){
             System.out.println(i + " : " + arr[i]);
         }

     }
}

1 个答案:

答案 0 :(得分:3)

while循环中,您将num除以自己,然后将结果分配回num。这将使num永远等于1。将其更改为

num /= 10;

将删除最后一位数字。

此外,您已经计算了最后一位数字并将结果存储在outcome中。你也可以使用它:

arr[outcome]+=1;

然后,当你到达循环来打印数组时,在条件中,总是使用<数组长度在处理完最后一个索引length - 1后停止。这样可以防止等待显示的ArrayIndexOutOfBoundsException

for (int i = 0; i < arr.length; i++){