我想创建一个程序来计算用户输入的整数出现次数 例如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"); }
}
}
}
答案 0 :(得分:1)
如果您获得了Integer
,则可以将其转换为String
,将其拆分为字符串数组,并使用stream
与groupingBy
制作地图事件发生。
Integer a = 121221315;
Map<String, Long> collect = Arrays.stream(String.valueOf(a).split(""))
.collect(Collectors.groupingBy(Function.identity(), Collectors.counting()));
当然,如果允许您使用java 8功能,那就是当然。
地图将包含至少存在一次的数字。从逻辑上讲,其余数字的出现次数为0
。