上一篇                     
               
			  Java如何输入整数?
- 后端开发
- 2025-06-15
- 2113
 在Java中录入整数通常使用Scanner类,首先导入java.util.Scanner,创建Scanner对象关联System.in,再调用nextInt()方法读取用户输入的整数值,Scanner sc = new Scanner(System.in); int num = sc.nextInt();
 
在Java中录入整数是基础操作,常用Scanner和BufferedReader两类方法,以下是详细实现方案:
使用Scanner类(推荐初学者)
步骤:
- 导入java.util.Scanner包
- 创建Scanner对象关联标准输入流
- 调用nextInt()读取整数
- 关闭资源(Java 7+可用try-with-resources自动关闭)
import java.util.Scanner;
public class ReadInteger {
    public static void main(String[] args) {
        // 创建Scanner对象
        try (Scanner sc = new Scanner(System.in)) {
            System.out.print("请输入整数: ");
            int num = sc.nextInt();  // 读取整数
            System.out.println("您输入的整数是: " + num);
        } catch (Exception e) {
            System.out.println("输入错误!请确保输入的是整数");
        }
    }
} 
关键点:

- nextInt()遇到非数字会抛出- InputMismatchException
- try-with-resources自动关闭资源,避免内存泄漏
- 需处理非整数输入(通过catch捕获异常)
使用BufferedReader类(高性能场景)
适用场景:大文件读取或需更高性能时
步骤:
- 导入java.io.BufferedReader和java.io.InputStreamReader
- 用BufferedReader包装System.in
- 用readLine()读取整行文本
- 用Integer.parseInt()转换字符串为整数
import java.io.BufferedReader;
import java.io.InputStreamReader;
public class ReadIntegerBuffered {
    public static void main(String[] args) {
        try (BufferedReader reader = new BufferedReader(new InputStreamReader(System.in))) {
            System.out.print("请输入整数: ");
            String input = reader.readLine();  // 读取文本行
            int num = Integer.parseInt(input); // 字符串转整数
            System.out.println("您输入的整数是: " + num);
        } catch (NumberFormatException e) {
            System.out.println("错误:输入内容不是有效整数");
        } catch (Exception e) {
            System.out.println("发生未知错误: " + e.getMessage());
        }
    }
} 
关键点:

- Integer.parseInt()遇到非数字会抛- NumberFormatException
- 需显式处理IOException(如文件读取错误)
两种方法对比
| 方法 | 优点 | 缺点 | 适用场景 | 
|---|---|---|---|
| Scanner | 代码简洁,自带类型转换 | 性能较低,异常处理复杂 | 简单控制台输入 | 
| BufferedReader | 性能高(尤其多次读取),节省系统资源 | 需手动转换类型,代码稍冗长 | 大数据量或高频读取场景 | 
注意事项
-  异常处理必须完善 - 用try-catch捕获InputMismatchException(Scanner)或NumberFormatException(BufferedReader)
- 避免程序因非规输入崩溃
 
- 用
-  资源关闭  - 使用try-with-resources(如try (Scanner sc = ...))确保自动关闭
- 手动调用close()可能遗漏(不推荐)
 
- 使用try-with-resources(如
-  输入验证扩展 - 若需循环输入直到合法: while (true) { try { System.out.print("请重新输入: "); int num = sc.nextInt(); break; // 合法则退出循环 } catch (InputMismatchException e) { sc.nextLine(); // 清空错误输入 System.out.println("无效输入!"); } }
 
- 若需循环输入直到合法: 
- 初学者首选Scanner:语法简单,适合基础输入
- 高性能选BufferedReader:处理大量数据时效率更高
- 始终添加异常处理:保障程序健壮性
引用说明:本文代码示例基于Oracle官方Java文档标准编写,遵循Java SE 17规范,Scanner和BufferedReader的用法参考《Java核心技术卷I》第3章I/O流处理。
 
  
			 
			 
			 
			 
			 
			 
			 
			