一Scanner是什么定义Scanner是Java标准库java.util包中提供的一个文本扫描器类用于从各种输入源如键盘输入、文件、字符串等读取并解析基本类型和字符串数据。作用它是 Java 程序与用户键盘输入或数据源文件交互的桥梁。地位虽然在高并发或高性能场景下如海量数据处理专业开发可能会用 BufferedReader但在90% 的日常业务逻辑、算法题、基础开发中Scanner 是首选因为它易用且功能强大能自动把字符串解析成 int, double 等。二为什么要学Scanner在之前int age 18; // 固定是18用户没法改有了Scanner程序就能和用户交互——用户运行程序时输入什么程序就处理什么Scanner sc new Scanner(System.in);int age sc.nextInt(); // 用户输入什么age就是什么总结Scanner是让Java程序听用户说话的工具。之前的问题有了Scanner之后数据写死在代码里程序运行时用户动态输入每次改数据都要改代码重新编译不用改代码直接输入无法实现交互式程序可以写计算器、登录系统等三如何使用Scanner第1步导入Scanner类Scanner在java.util包中需要在使用前导入。import java.util.Scanner;// 放在文件最顶部package语句之后public class之前第2步创建Scanner对象在使用Scanner之前需要先创建它的对象示例代码如下Scanner sc new Scanner(System.in);组成部分含义Scanner类型声明表示sc是一个Scanner类型的引用变量sc变量名可以自定义如input、readernew Scanner(...)创建Scanner对象System.in输入源——表示标准输入流即键盘输入第3步读取输入根据需要读取的数据类型调用对应的方法方法返回值类型作用nextInt()int读取一个整数nextDouble()double读取一个浮点数nextBoolean()boolean读取一个布尔值true/falsenext()String读取一个单词遇到空格/回车停止nextLine()String读取一整行直到回车nextByte()byte读取一个字节nextShort()short读取一个短整数nextLong()long读取一个长整数nextFloat()float读取一个单精度浮点数第4步关闭Scanner可选但建议sc.close(); // 释放资源好习惯具体代码示例如下next() 与 nextLine() 的区别——重要1.核心区别方法读取规则是否包含空格结束标志next()读取到空白符空格、Tab、回车为止不包含遇到空白符停止nextLine()读取到回车换行符为止包含遇到\n停止nextLine() 像个耐心的朋友你说话它听你沉默它等从不发火nextInt() 像个死板的机器人要啥必须给啥给错立刻罢工代码示例常见错误// ❌ 错误1忘记导入// Scanner scanner new Scanner(System.in); // 报错找不到符号为什么ava 有成千上万个类像字典有几万字Scanner 在java.util包里像“生僻字”在字典第500页不导入 不翻字典 编译器懵了// ❌ 错误2关闭后不能再使用scanner.close();Stringsscanner.nextLine();// 报错Scanner closed//为什么sc.close() 彻底销毁这个 Scanner像撕掉收据关闭后所有方法nextLine()等都会报错常见坑在循环里提前关闭后面又想用//❌ 错误3类型不匹配且无验证intagescanner.nextInt();// 输入abc导致程序崩溃错误报错关键词根本原因一句话解决方案忘记导入找不到符号没告诉编译器Scanner在哪开头加 import java.util.Scanner;关闭后使用Scanner closed关了还用像撕收据后要退货所有输入结束后再 close()类型不匹配InputMismatchException要数字却给字母统一用 nextLine() parseInt()1️⃣用Scanner必写import2️⃣输入结束再写close3️⃣新手输入全用nextLine
Scanner的使用
发布时间:2026/5/19 10:56:12
一Scanner是什么定义Scanner是Java标准库java.util包中提供的一个文本扫描器类用于从各种输入源如键盘输入、文件、字符串等读取并解析基本类型和字符串数据。作用它是 Java 程序与用户键盘输入或数据源文件交互的桥梁。地位虽然在高并发或高性能场景下如海量数据处理专业开发可能会用 BufferedReader但在90% 的日常业务逻辑、算法题、基础开发中Scanner 是首选因为它易用且功能强大能自动把字符串解析成 int, double 等。二为什么要学Scanner在之前int age 18; // 固定是18用户没法改有了Scanner程序就能和用户交互——用户运行程序时输入什么程序就处理什么Scanner sc new Scanner(System.in);int age sc.nextInt(); // 用户输入什么age就是什么总结Scanner是让Java程序听用户说话的工具。之前的问题有了Scanner之后数据写死在代码里程序运行时用户动态输入每次改数据都要改代码重新编译不用改代码直接输入无法实现交互式程序可以写计算器、登录系统等三如何使用Scanner第1步导入Scanner类Scanner在java.util包中需要在使用前导入。import java.util.Scanner;// 放在文件最顶部package语句之后public class之前第2步创建Scanner对象在使用Scanner之前需要先创建它的对象示例代码如下Scanner sc new Scanner(System.in);组成部分含义Scanner类型声明表示sc是一个Scanner类型的引用变量sc变量名可以自定义如input、readernew Scanner(...)创建Scanner对象System.in输入源——表示标准输入流即键盘输入第3步读取输入根据需要读取的数据类型调用对应的方法方法返回值类型作用nextInt()int读取一个整数nextDouble()double读取一个浮点数nextBoolean()boolean读取一个布尔值true/falsenext()String读取一个单词遇到空格/回车停止nextLine()String读取一整行直到回车nextByte()byte读取一个字节nextShort()short读取一个短整数nextLong()long读取一个长整数nextFloat()float读取一个单精度浮点数第4步关闭Scanner可选但建议sc.close(); // 释放资源好习惯具体代码示例如下next() 与 nextLine() 的区别——重要1.核心区别方法读取规则是否包含空格结束标志next()读取到空白符空格、Tab、回车为止不包含遇到空白符停止nextLine()读取到回车换行符为止包含遇到\n停止nextLine() 像个耐心的朋友你说话它听你沉默它等从不发火nextInt() 像个死板的机器人要啥必须给啥给错立刻罢工代码示例常见错误// ❌ 错误1忘记导入// Scanner scanner new Scanner(System.in); // 报错找不到符号为什么ava 有成千上万个类像字典有几万字Scanner 在java.util包里像“生僻字”在字典第500页不导入 不翻字典 编译器懵了// ❌ 错误2关闭后不能再使用scanner.close();Stringsscanner.nextLine();// 报错Scanner closed//为什么sc.close() 彻底销毁这个 Scanner像撕掉收据关闭后所有方法nextLine()等都会报错常见坑在循环里提前关闭后面又想用//❌ 错误3类型不匹配且无验证intagescanner.nextInt();// 输入abc导致程序崩溃错误报错关键词根本原因一句话解决方案忘记导入找不到符号没告诉编译器Scanner在哪开头加 import java.util.Scanner;关闭后使用Scanner closed关了还用像撕收据后要退货所有输入结束后再 close()类型不匹配InputMismatchException要数字却给字母统一用 nextLine() parseInt()1️⃣用Scanner必写import2️⃣输入结束再写close3️⃣新手输入全用nextLine