如何拆分整数(从用户输入中出现整数)

时间:2017-10-04 11:23:32

标签: java arrays

我想创建一个程序来计算用户输入的整数出现次数 例如121221315

0:0次

1:4次

2:3次

3:1次

4:0次......等到9 ......

但我的代码是121221315作为单个整数,我需要找到一种可以拆分每个整数的方法

另一个问题是我不知道如何停止第一个for循环...我不知道在程序读完输入时如何停止循环的条件...我只是开始学习编码..请帮我简单/简单的代码!

我有以下代码

import java.util.Scanner;

public class Occurrence {
	
	public static void main(String[] args) {
           

        Scanner input = new Scanner(System.in);

        int[] number = new int[100];

        System.out.print("Enter the integers between 1 and 100: ");
        for (int i = 0; i < number.length; i++) {
            int a = input.nextInt();
            number[a] += a;
              break;
        }
        for (int i = 1; i < number.length; i++) {
            if (number[i] != 0) {
                if (number[i] / i > 1)
                    System.out.println(i + " occurs " + number[i] / i + " times");
                else
                    System.out.println(i + " occurs " + number[i] / i + " time");               }
        }
    }
}

1 个答案:

答案 0 :(得分:1)

如果您获得了Integer,则可以将其转换为String,将其拆分为字符串数组,并使用streamgroupingBy制作地图事件发生。

 Integer a = 121221315;

 Map<String, Long> collect = Arrays.stream(String.valueOf(a).split(""))
            .collect(Collectors.groupingBy(Function.identity(), Collectors.counting()));

当然,如果允许您使用java 8功能,那就是当然。

地图将包含至少存在一次的数字。从逻辑上讲,其余数字的出现次数为0