java Scanner

server/2024/11/26 11:07:31/

在 Java 中,Scanner 是一个用于从输入流中读取数据的类,常用于从控制台读取用户输入。它位于 java.util 包中,并提供了多种读取不同类型数据的方法。以下是 Scanner 类中最常用的几个方法以及它们的详细说明。

1. 创建 Scanner 对象

首先,要使用 Scanner,你需要创建一个 Scanner 对象。通常用于从标准输入流(控制台)读取数据:

Scanner scanner = new Scanner(System.in);

System.in 表示从控制台读取输入。


2. 常用方法

1. next()
  • 功能:读取下一个完整的单词(以空格为分隔符)。
  • 返回类型String
  • 示例
Scanner scanner = new Scanner(System.in);
System.out.println("请输入一个单词:");
String word = scanner.next();
System.out.println("您输入的单词是: " + word);

如果输入的是 "Hello World",则 next() 只会读取到 "Hello"。

2. nextLine()
  • 功能:读取整行输入,包括空格。
  • 返回类型String
  • 示例
Scanner scanner = new Scanner(System.in);
System.out.println("请输入一行文字:");
String line = scanner.nextLine();
System.out.println("您输入的内容是: " + line);

如果输入的是 "Hello World",nextLine() 会读取整个 "Hello World"。

3. nextInt()
  • 功能:读取下一个整数。
  • 返回类型int
  • 示例
Scanner scanner = new Scanner(System.in);
System.out.println("请输入一个整数:");
int num = scanner.nextInt();
System.out.println("您输入的整数是: " + num);

如果输入的是 42,则 nextInt() 会返回 42

注意:如果输入的不是有效的整数类型,nextInt() 会抛出 InputMismatchException

4. nextDouble()
  • 功能:读取下一个双精度浮点数。
  • 返回类型double
  • 示例
Scanner scanner = new Scanner(System.in);
System.out.println("请输入一个浮点数:");
double value = scanner.nextDouble();
System.out.println("您输入的浮点数是: " + value);

输入 3.14 会返回 3.14

5. nextBoolean()
  • 功能:读取下一个布尔值。
  • 返回类型boolean
  • 示例
Scanner scanner = new Scanner(System.in);
System.out.println("请输入一个布尔值 (true/false):");
boolean flag = scanner.nextBoolean();
System.out.println("您输入的布尔值是: " + flag);

输入 truefalse 会返回相应的布尔值。

6. hasNext()
  • 功能:检查是否还有下一个输入项。
  • 返回类型boolean
  • 示例
Scanner scanner = new Scanner(System.in);
System.out.println("请输入一段文本:");
while (scanner.hasNext()) {String word = scanner.next();System.out.println("您输入的单词是: " + word);
}

这个方法会持续读取直到输入结束。

7. hasNextLine()
  • 功能:检查是否还有下一行输入。
  • 返回类型boolean
  • 示例
Scanner scanner = new Scanner(System.in);
System.out.println("请输入一些文本:");
while (scanner.hasNextLine()) {String line = scanner.nextLine();System.out.println("您输入的行是: " + line);
}
8. close()
  • 功能:关闭 Scanner 对象,释放资源。这个方法应该在不再需要读取输入时调用。
  • 示例
Scanner scanner = new Scanner(System.in);
// 做一些读取操作
scanner.close();  // 关闭 scanner

3. 使用 Scanner 时的注意事项

  • 输入错误处理:如果用户输入的数据类型不匹配(例如,输入一个字母而程序期望一个整数),Scanner 会抛出 InputMismatchException。可以通过 try-catch 语句来处理异常。
Scanner scanner = new Scanner(System.in);
try {System.out.println("请输入一个整数:");int num = scanner.nextInt();System.out.println("您输入的整数是: " + num);
} catch (InputMismatchException e) {System.out.println("输入错误,请输入一个有效的整数。");
}
  • nextLine() 和其他方法的关系:当你使用 nextInt()nextDouble() 等方法时,它们会读取输入的部分数据,但会留下一个换行符(即回车符)在输入缓冲区。这可能导致随后的 nextLine() 调用读取到空行。解决这个问题的一个常见方法是在使用 nextInt()nextDouble() 后再调用一次 nextLine() 来消费掉这个换行符。
Scanner scanner = new Scanner(System.in);
System.out.println("请输入一个整数:");
int num = scanner.nextInt();
scanner.nextLine(); // 消耗掉剩余的换行符
System.out.println("请输入一行文字:");
String line = scanner.nextLine();

4. 总结

Scanner 是一个非常强大的工具,适合用来处理用户输入和从文件中读取数据。通过使用 next()nextLine()nextInt()nextDouble() 等方法,你可以根据不同的需求读取不同类型的数据。记住在使用完 Scanner 后调用 close() 关闭它,以释放资源。


http://www.ppmy.cn/server/145035.html

相关文章

1.5万字长文Java集合与数据结构面试题(注:该篇博客将会持续维护 最新维护时间:2024年11月25日)

🧸本篇博客重在讲解Java集合与数据结构面试题,将会实时更新,欢迎大家添加作者文末联系方式交流 📜JAVA面试题专栏:JAVA崭新面试题——2024版_dream_ready的博客-CSDN博客 📜作者首页: dream_rea…

SpringMvc给页面一个默认界面

1、config包 1.1、创建SpringMvcConfig类并实现接口WebMvcConfigurer EnableWebMvc public class SpringMvcConfig implements WebMvcConfigurer {//视图解析器Beanpublic ViewResolver viewResolver() {InternalResourceViewResolver viewResolver new InternalResourceView…

极简开源Windows桌面定时提醒休息python程序

当我们长期在电脑面前坐太久后,会产生一系列健康风险,包括干眼症,颈椎,腰椎,肌肉僵硬等等。解决方案是在一定的时间间隔内我们需要have a break, 远眺可以缓解干眼症等眼部症状,站起来走动两步,…

【漏洞复现】代付微信小程序系统 read.php 任意文件读取漏洞

免责声明: 本文旨在提供有关特定漏洞的信息,以帮助用户了解潜在风险。发布此信息旨在促进网络安全意识和技术进步,并非出于恶意。读者应理解,利用本文提到的漏洞或进行相关测试可能违反法律或服务协议。未经授权访问系统、网络或应用程序可能导致法律责任或严重后果…

大数据实战之Zookeeper集群

1、配置Linux Hosts文件 vim /etc/hosts添加 192.168.20.123 hadoop03 2、时钟同步 cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime3、安装ntp 先检查是否安装ntp rpm -qa | grep ntp如果没有安装,则安装ntp yum install -y ntp注:如果虚拟机…

论文阅读--Evidence for the utility of quantum computing before fault tolerance

量子计算有望在某些问题上提供比传统计算更快的速度。然而,实现其全部潜力的最大障碍是这些系统固有的噪声。这一挑战被广泛接受的解决方案是实现容错量子电路,而这超出了当前处理器的能力范围。我们在此报告了在嘈杂的127 量子比特处理器上进行的实验&a…

【ROS2】ROS2 构建系统 colcon 介绍、安装与使用

目录 一、ament 与 colcon二、colcon 模块化安装三、colcon 基本使用介绍3.1 常用命令构建工作空间清理构建结果构建特定的包指定构建系统并行构建扩展构建选项 3.2 其他命令列出所有可用的包忽略某些包查看colcon文档 一、ament 与 colcon ROS2采用了新的编译系统Ament&#…

PICO VR串流调试Unity程序

在平时写Unity的VR程序的时候,需要调试自己写的代码,但是有的时候会发现场景过于复杂,不是HMD一体机能运行的,或者为了能够更方便的调试,不需要每次都将程序部署到眼睛里,这样非常浪费时间,对于…