提示用户输入任意一个int类型范围的正整数,统计其中每个数字出现次数并打 印。(提示:巧用index(下标)如:输入:1324352输出:1出现1次,2出现2 次,3出现2次,4出现1次,5出现1次~用JAVA数组下标写
时间: 2025-06-26 18:08:02 浏览: 8
### Java 实现统计正整数中每个数字出现的次数
以下是基于题目需求编写的解决方案,通过使用数组作为存储结构来记录每一位数字(0到9)在给定正整数中的出现频率。
#### 解决方案描述
为了完成此功能,可以采用如下方法:
1. 将输入的正整数转换为字符串形式以便逐位处理。
2. 创建一个长度为 10 的数组 `count` 来分别表示数字 0 到 9 的出现次数。
3. 遍历该字符串并更新对应位置上的计数值。
4. 输出最终的结果。
下面是完整的代码实现:
```java
import java.util.Scanner;
public class DigitFrequencyCounter {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入一个正整数:");
String inputNumberStr;
while (true) { // 确保输入的是有效的正整数
try {
int number = Integer.parseInt(scanner.nextLine());
if (number > 0) {
inputNumberStr = String.valueOf(number); // 转化成字符串方便操作
break;
} else {
System.out.println("请输入大于零的有效正整数!");
}
} catch (NumberFormatException e) {
System.out.println("非法输入! 请重新输入一个正整数.");
}
}
int[] countArray = new int[10]; // 初始化大小为10的数组用于保存各数字出现频次
for (char c : inputNumberStr.toCharArray()) {
if ('0' <= c && c <= '9') { // 只考虑合法字符范围内的数据
countArray[c - '0']++;
}
}
// 打印结果部分
StringBuilder resultBuilder = new StringBuilder();
boolean hasDigitAppeared = false;
for (int i = 0; i < countArray.length; ++i) {
if (countArray[i] != 0) {
hasDigitAppeared = true;
resultBuilder.append(i).append(":").append(countArray[i]).append(", ");
}
}
if (!hasDigitAppeared) {
System.out.println("没有任何有效数字被检测到!");
} else {
System.out.print("各个数字出现的次数分别为: ");
System.out.println(resultBuilder.substring(0, resultBuilder.length() - 2)); // 去掉最后多余的逗号和空格
}
scanner.close(); // 关闭scanner对象释放资源
}
}
```
上述程序实现了读取用户输入的一个正整数,并计算其中每一个数字(从0至9)各自出现了多少次的功能。如果某个特定数字从未出现在这个数里,则不会显示其对应的条目[^1]。
#### 进一步说明
对于更复杂的场景或者更大的数据集来说,可能还需要考虑到性能优化以及边界条件等问题。例如当面对非常大的整型值时,应评估内存消耗情况;另外也要注意异常处理机制以增强健壮性[^2]。
阅读全文
相关推荐



















