在Java编程中,录入整数123是一个基础但重要的操作,涉及多种输入方式和数据类型的处理,本文将详细讲解通过不同方法实现整数录入的步骤、代码示例及注意事项,帮助开发者全面掌握Java中整数输入的核心技术。

使用Scanner类实现控制台录入
Scanner类是Java.util包中提供的便捷输入工具,支持多种数据类型的读取,要录入整数123,首先需要创建Scanner对象并关联标准输入流(System.in),然后调用nextInt()方法读取整数输入。
import java.util.Scanner;
public class IntegerInput {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("请输入一个整数:");
int number = scanner.nextInt();
System.out.println("您输入的整数是:" + number);
scanner.close();
}
}
代码解析:
- 导入java.util.Scanner包
- 创建Scanner实例,参数System.in表示从键盘接收输入
- 使用nextInt()方法等待用户输入并转换为int类型
- 通过close()方法关闭Scanner释放资源
注意事项:
- nextInt()方法只能读取整数,若用户输入非数字字符(如”abc”)会抛出InputMismatchException
- 输入123后需按回车键确认输入完成
- 建议在使用Scanner后始终关闭,避免资源泄漏
处理输入异常的增强版实现
实际开发中需要考虑用户输入非整数的情况,可通过try-catch结构捕获异常并提示重新输入:
import java.util.InputMismatchException;
import java.util.Scanner;
public class SafeIntegerInput {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int number = 0;
boolean validInput = false;
while (!validInput) {
try {
System.out.print("请输入整数123:");
number = scanner.nextInt();
if (number == 123) {
validInput = true;
System.out.println("输入正确!");
} else {
System.out.println("输入错误,请重新输入123");
}
} catch (InputMismatchException e) {
System.out.println("输入的不是有效整数,请重新输入");
scanner.next(); // 清除错误的输入
}
}
scanner.close();
}
}
关键改进:
- 使用while循环确保用户必须输入正确值
- 捕获InputMismatchException处理非数字输入
- 通过scanner.next()清除缓冲区中的无效字符
使用BufferedReader类实现高效输入
BufferedReader是Java.io包中的高效输入类,配合InputStreamReader可以实现更快的读取速度:

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class BufferedReaderInput {
public static void main(String[] args) {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
try {
System.out.print("请输入整数123:");
String input = reader.readLine();
int number = Integer.parseInt(input);
if (number == 123) {
System.out.println("输入正确:" + number);
} else {
System.out.println("输入错误");
}
} catch (IOException e) {
System.out.println("发生IO异常:" + e.getMessage());
} catch (NumberFormatException e) {
System.out.println("输入格式不正确");
} finally {
try {
if (reader != null) reader.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
技术特点:
- readLine()方法读取整行输入,返回String类型
- 使用Integer.parseInt()将字符串转换为int
- 需要处理IOException和NumberFormatException两种异常
Java 7+的try-with-resources语法
从Java 7开始,可以使用try-with-resources自动管理资源,简化代码结构:
import java.util.Scanner;
public class AutoCloseResource {
public static void main(String[] args) {
try (Scanner scanner = new Scanner(System.in)) {
System.out.print("请输入整数123:");
while (true) {
try {
int number = scanner.nextInt();
if (number == 123) {
System.out.println("成功录入:" + number);
break;
} else {
System.out.print("输入错误,请重新输入123:");
}
} catch (Exception e) {
System.out.print("输入无效,请重新输入整数:");
scanner.next(); // 清除错误输入
}
}
} // Scanner会自动关闭
}
}
优势说明:
- try-with-resources确保Scanner自动关闭
- 减少了finally块中的资源关闭代码
- 异常处理逻辑更加紧凑
不同数据类型的处理技巧
虽然目标是录入整数123,但了解相关数据类型的转换很重要:
-
String转int
int num = Integer.parseInt("123"); // 直接转换 int num = Integer.valueOf("123"); // 返回Integer对象后自动拆箱 -
输入验证增强

if (input.matches("\\d+")) { // 检查是否为纯数字 int number = Integer.parseInt(input); } -
大整数处理
当需要处理超过int范围的整数时,可使用BigInteger:import java.math.BigInteger; BigInteger bigNum = new BigInteger("123");
实际应用场景示例
在用户交互程序中,整数录入常用于菜单选择、数量统计等场景:
import java.util.Scanner;
public class MenuExample {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
while (true) {
System.out.println("请选择操作:");
System.out.println("1. 查询信息");
System.out.println("2. 修改数据");
System.out.println("3. 退出系统");
System.out.print("请输入选项(1-3):");
try {
int choice = scanner.nextInt();
switch (choice) {
case 1:
System.out.println("正在查询信息...");
break;
case 2:
System.out.println("正在修改数据...");
break;
case 3:
System.out.println("系统已退出");
scanner.close();
return;
default:
System.out.println("选项无效,请重新输入");
}
} catch (Exception e) {
System.out.println("输入错误,请输入数字1-3");
scanner.next(); // 清除错误输入
}
}
}
}
性能与安全性对比
| 输入方式 | 速度 | 异常处理 | 自动资源管理 | 适用场景 |
|---|---|---|---|---|
| Scanner | 较慢 | 完善 | 需手动关闭 | 通用开发 |
| BufferedReader | 快速 | 需自行处理 | 可配合try-with-resources | 高性能需求 |
| Console类 | 中等 | 有限 | 自动管理 | 安全密码输入 |
最佳实践建议
- 始终进行输入验证:检查输入是否符合预期格式和范围
- 及时关闭资源:使用Scanner或BufferedReader后确保关闭
- 提供清晰的提示:告知用户需要输入的数据类型和格式
- 处理边界情况:考虑最小值、最大值及特殊输入(如空值)
- 选择合适的输入类:根据性能需求和功能复杂度选择Scanner或BufferedReader
通过以上方法的系统学习,开发者可以灵活应对Java编程中各种整数录入场景,编写出健壮、高效的用户交互程序,掌握这些基础技术对于后续学习更复杂的IO操作和数据处理至关重要。


















