当前位置:首页 > 后端开发 > 正文

Java如何输入整数?

在Java中录入整数通常使用Scanner类,首先导入java.util.Scanner,创建Scanner对象关联System.in,再调用nextInt()方法读取用户输入的整数值,Scanner sc = new Scanner(System.in); int num = sc.nextInt();

在Java中录入整数是基础操作,常用Scanner和BufferedReader两类方法,以下是详细实现方案:


使用Scanner类(推荐初学者)

步骤:

  1. 导入java.util.Scanner包
  2. 创建Scanner对象关联标准输入流
  3. 调用nextInt()读取整数
  4. 关闭资源(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如何输入整数? 第1张

  1. 导入java.io.BufferedReader和java.io.InputStreamReader
  2. 用BufferedReader包装System.in
  3. 用readLine()读取整行文本
  4. 用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 性能高(尤其多次读取),节省系统资源 需手动转换类型,代码稍冗长 大数据量或高频读取场景


注意事项

  1. 异常处理必须完善

    Java如何输入整数? 第2张

    • 用try-catch捕获InputMismatchException(Scanner)或NumberFormatException(BufferedReader)
    • 避免程序因非法输入崩溃
  2. 资源关闭

    • 使用try-with-resources(如try (Scanner sc = ...))确保自动关闭
    • 手动调用close()可能遗漏(不推荐)
    • 输入验证扩展

      • 若需循环输入直到合法: 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流处理。

        Java如何输入整数? 第3张

0