Java Scanner 类

Java Scanner 类

java.util.Scanner 是 Java5 的新特征,我们可以通过 Scanner 类来获取用户的输入。

下面是创建 Scanner 对象的基本语法:

	Scanner s = new Scanner(System.in);

接下来我们演示一个最简单的数据输入,并通过 Scanner 类的 next() 与 nextLine() 方法获取输入的字符串,在读取前我们一般需要 使用 hasNext 与 hasNextLine 判断是否还有输入的数据:


使用 next 方法:

在这里插入图片描述
编译运行后可在控制台输出
可以看到 用 hasNext 输出 空格后的单词不会输出
在这里插入图片描述


使用 nextLine 方法:

在这里插入图片描述

编译运行后输出

在这里插入图片描述


next() 与 nextLine() 区别

next():

  1. 一定要读取到有效字符后才可以结束输入。
  2. 对输入有效字符之前遇到的空白,next() 方法会自动将其去掉。
  3. 只有输入有效字符后才将其后面输入的空白作为分隔符或者结束符。
  4. next() 不能得到带有空格的字符串。

nextLine():

  1. 以Enter为结束符,也就是说 nextLine()方法返回的是输入回车之前的所有字符。
  2. 可以获得空白。

如果要输入 int 或 float 类型的数据,在 Scanner 类中也有支持,但是在输入之前最好先使用 hasNextXxx() 方法进行验证,再使用 nextXxx() 来读取:

	package test;import java.util.Scanner;public class test {public static void main(String[] args) {Scanner scan = new Scanner(System.in);// 从键盘接收数据int i = 0;float f = 0.0f;System.out.print("输入整数:");if (scan.hasNextInt()) {// 判断输入的是否是整数i = scan.nextInt();// 接收整数System.out.println("整数数据:" + i);} else {// 输入错误的信息System.out.println("输入的不是整数!");}System.out.print("输入小数:");if (scan.hasNextFloat()) {// 判断输入的是否是小数f = scan.nextFloat();// 接收小数System.out.println("小数数据:" + f);} else {// 输入错误的信息System.out.println("输入的不是小数!");}scan.close();}}

编译运行后输出

在这里插入图片描述

以下实例我们可以输入多个数字,并求其总和与平均数,每输入一个数字用回车确认,通过输入非数字来结束输入并输出执行结果:

	package test;import java.util.Scanner;public class test {public static void main(String[] args) {System.out.println("请输入数字:");Scanner scan = new Scanner(System.in);double sum = 0;int m = 0;while (scan.hasNextDouble()) {double x = scan.nextDouble();m = m + 1;sum = sum + x;}System.out.println(m + "个数的和为" + sum);System.out.println(m + "个数的平均值是" + (sum / m));scan.close();}}

编译运行输出如下
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/34064.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Scala 中yield 关键字

Scala 中yield 关键字 在 Scala 中,yield 关键字通常与 for 循环结合使用,用于生成一个集合(通常是 List、Array 等)。它的作用是将循环体中的每次迭代产生的值收集起来,并最终返回一个包含这些值的集合。 下面是一个简…

关于FPGA对 DDR4 (MT40A256M16)的读写控制 4

关于FPGA对 DDR4 (MT40A256M16)的读写控制 4 语言 :Verilg HDL 、VHDL EDA工具:ISE、Vivado、Quartus II 关于FPGA对 DDR4 (MT40A256M16)的读写控制 4一、引言二、DDR4 SDRAM设备中模式寄存器重要的模式寄存…

background 与img标签加载图片的区别

在HTML和CSS中,通过background属性和img标签都可以加载图片,它们各自有一些优势和劣势: 使用 background 属性加载图片的优势和劣势: 优势: 灵活性: 可以通过CSS的background属性设置背景图片&#xff0…

数组中的逆序对

描述: https://leetcode.cn/problems/shu-zu-zhong-de-ni-xu-dui-lcof/description/ 思路: 在进行归并排序时,会分成有序的左右两部分,如果左部分出现了大于右部分的数时(nums[cur1] > nums[cur2])&…

Javaweb配置tomcat

Tomcat 9版本链接 链接:https://pan.baidu.com/s/1u-eDur5KlqlXM_IM50Ahtg?pwd1njm 提取码:1njm 1、打开idea,创建maven项目 2023版IDEA 2、 目录结构 ps: 如果结果不完整,选中main右键 新建对应的文件夹 3、 web项目设置Tomcat(部署项目…

特征工程与数据预处理全解析:基础技术和代码示例

在机器学习和数据科学的世界里,数据的质量是建模成功与否的关键所在。这就是特征工程和数据预处理发挥作用的地方。本文总结的这些关键步骤可以显著提高模型的性能,获得更准确的预测,我们将深入研究处理异常值、缺失值、编码、特征缩放和特征…

如何阅读一篇学术论文

第一遍 论文的格式实际上常常遵循着固定的结构,这种结构有助于作者整理思路,同时也帮助读者快速定位论文的要点和创新之处。 最常见的错误是拿到一篇论文后立刻开始从头到尾仔细阅读,然后进行详细笔记。这种方法可以全局了解论文的内容&…

我是如何从功能测试转成自动化测试的!

大家好,我是测试君。(六哥也行) 时间过得好快,不知不觉已经在这个行业摸爬滚打10年多了,也算是测试圈的一枚老兵了。 回想自己在自动化求知路上的种种,依然历历在目,看着自己一步步的走来&#…

剪画小程序:视频文案提取神器:制作爆款视频的第一步!

在这个信息爆炸的时代,视频成为了我们获取知识和娱乐的重要途径。 但有时候,我们想要的不仅仅是观看视频,而是能够将其中精彩的文案提取出来,为自己的创作添砖加瓦。 现在,有一款神奇的工具应运而生,为您…

工作随记-构造调用虚函数

工作随记-构造调用虚函数 代码编译警告原因解决方法示例代码重构示例总结 代码编译警告 Call to virtual method CoordinateConversionTool::Reset during construction bypasses virtual dispatch [clang-analyzer-optin.cplusplus.VirtualCall]这个警告信息来自 Clang 静态分…

Linux-笔记 高级I/O操作

前言 I/O(Input/Output,输入/输出)是计算机系统中的一个重要组成部分,它是指计算机与 外部世界之间的信息交流过程。I/O 操作是计算机系统中的一种基本操作,用于向外部设备(如 硬盘、键盘、鼠标、网络等&am…

https基础概念

目录 1.什么是https 1.1.https概念 1.2.一些术语 2.https如何加密 2.1.使用对称加密 2.2.使用非对称加密 1.什么是https 首先,https不是http的复数形式 1.1.https概念 (1)产生背景 为什么会出现https,是因为http协议在传…

如何通过有效的跟进,吸引国外客户回复?

相信很多外贸业务员都知道,想要走到最终达成订单成交的那一步,首要前提就是客户愿意和你继续谈。第一次询价就买的这种客户属于刚需,可遇而不可求,大部分的客户都需要通过我们坚持不懈的跟进最后达成交易。 所以如何通过有效的跟…

小白学python(第二天)

哈喽,各位小伙伴们我们又见面了,昨天的文章吸收得如何?可有不懂否?如有不懂可以在品论区留言哦,废话不多说,开始今天的内容。 字符及字符串的续讲 字符:英文字母,阿拉伯数字&#x…

大数据面试题之Hive(2)

目录 Hive的join操作原理,leftjoin、right join、inner join、outer join的异同? Hive如何优化join操作 Hive的mapjoin Hive语句的运行机制,例如包含where、having、group by、orderby,整个的执行过程? Hive使用的时候会将数据同步到HD…

Laravel 响应对象深度解析:构建动态 HTTP 响应

在 Laravel 框架中,响应(Response)对象扮演着至关重要的角色,它负责将应用程序的输出发送给客户端。Laravel 的响应系统非常灵活,允许开发者以多种方式构建和自定义响应。本文将深入探讨 Laravel 中响应对象的工作机制…

Keil汇编相关知识

一、汇编的组成 1.汇编指令:在内存中占用内存,执行一条汇编指令会让处理器进行相关运算 分类:数据处理指令,跳转指令,内存读写指令,状态寄存器传送指令,软中断产生指令,协助处理器…

AcWing算法基础课笔记——状态压缩DP:蒙德里安的梦想

状态压缩DP 状态是整数,但把它看成二进制数,二进制中每一位是0或1表示不同的情况。 蒙德里安的梦想 291. 蒙德里安的梦想 - AcWing题库 题目 求把 NM𝑁𝑀 的棋盘分割成若干个 1212 的长方形,有多少种方案。 例如…

electron-builder 打包过慢解决

报错内容如下 > 6-241.0.0 build > electron-builder • electron-builder version24.13.3 os10.0.22631 • loaded configuration filepackage.json ("build" field) • writing effective config filedist\builder-effective-config.yaml • pack…

地下管线管网三维建模系统MagicPipe3D

地下管网是保障城市运行的基础设施和“生命线”。随着实景三维中国建设的推进,构建地下管网三维模型与地上融合的数字孪生场景,对于提升智慧城市管理至关重要!针对现有三维管线建模数据差异大、建模交互弱、模型效果差、缺乏语义信息等缺陷&a…