Java中如何有效统计特定输入的次数?有哪些方法与技巧?
- 后端开发
- 2025-10-24
- 5
在Java中,统计输入次数可以通过多种方式实现,以下是一些常见的方法和示例:
使用循环和计数器
这是一种最直接的方法,通过循环接收输入,并使用一个变量来计数。

使用Scanner的hasNextInt()方法
这种方法更适用于不确定输入次数的情况,可以动态地读取输入。
import java.util.Scanner; public class InputCounter { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); int count = 0; System.out.println("请输入一些数字(输入非数字结束):"); while (scanner.hasNextInt()) { scanner.nextInt(); count++; } System.out.println("您总共输入了 " + count + " 个数字。"); scanner.close(); } }
使用ArrayList存储输入
这种方法可以将所有输入存储在一个列表中,然后计算列表的大小。

import java.util.ArrayList; import java.util.Scanner; public class InputCounter { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); ArrayList<Integer> inputs = new ArrayList<>(); System.out.println("请输入一些数字(输入1结束):"); while (true) { int input = scanner.nextInt(); if (input == 1) { break; } inputs.add(input); } System.out.println("您总共输入了 " + inputs.size() + " 个数字。"); scanner.close(); } }
使用HashSet去重统计
如果需要统计不同的输入次数,可以使用HashSet来存储输入,并计算其大小。

import java.util.HashSet; import java.util.Scanner; public class InputCounter { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); HashSet<Integer> inputs = new HashSet<>(); System.out.println("请输入一些数字(输入1结束):"); while (true) { int input = scanner.nextInt(); if (input == 1) { break; } inputs.add(input); } System.out.println("您总共输入了 " + inputs.size() + " 个不同的数字。"); scanner.close(); } }
| 方法 | 描述 | 示例 |
|---|---|---|
| 循环和计数器 | 通过循环接收输入,并使用一个变量来计数。 | while (true) { ... } |
| Scanner的hasNextInt() | 动态读取输入,直到遇到非整数输入。 | while (scanner.hasNextInt()) { ... } |
| ArrayList存储输入 | 将所有输入存储在一个列表中,然后计算列表的大小。 | ArrayList<Integer> inputs = new ArrayList<>(); |
| HashSet去重统计 | 使用HashSet存储输入,并计算其大小。 | HashSet<Integer> inputs = new HashSet<>(); |
FAQs
Q1:如何在不使用循环的情况下统计输入次数?
A1:如果不使用循环,可以考虑使用Scanner的hasNextInt()方法,该方法会检查下一个输入是否为整数,每次调用该方法时,如果输入是整数,则计数器加一,直到遇到非整数输入。
Q2:如何统计不同数字的输入次数?
A2:要统计不同数字的输入次数,可以使用HashSet。HashSet是一个集合,它不允许重复的元素,当用户输入一个数字时,将其添加到HashSet中,由于HashSet不允许重复,因此可以准确地统计不同数字的个数。