Java Scanner 类的使用小结
作者:种子选手席同学 发布时间:2023-11-29 00:50:39
在笔试编程过程中,关于数据的读取如果迷迷糊糊,那后来的编程即使想法很对,实现很好,也是徒劳,于是在这里认真总结了Java Scanner 类的使用
通过 Scanner 类来获取用户的输入,下面是创建 Scanner 对象的基本语法:
Scanner s = new Scanner(System.in); // 从键盘接收数据
接下来我们演示一个最简单的数据输入,并通过 Scanner 类的 next() 与 nextLine() 方法获取输入的字符串,在读取前我们一般需要 使用 hasNext 与 hasNextLine 判断是否还有输入的数据:
next() 与 nextLine() 区别
next()的使用方法演示:
import java.util.Scanner;
public class scannertest {
public static void main(String[] args) {
Scanner s = new Scanner(System.in); // 从键盘接收数据
// next方式接收字符串
System.out.println("next方式接收:");
// 判断是否还有输入
if (s.hasNext()) {
String str1 = s.next();
System.out.println("输入的数据为:" + str1);
}
s.close();
}
}
next方式接收:
hello world
输入的数据为:hello
由结果可知:
1、一定要读取到有效字符后才可以结束输入。
2、对输入有效字符之前遇到的空白,next() 方法会自动将其去掉。
3、只有输入有效字符后才将其后面输入的空白作为分隔符或者结束符。
next() 不能得到带有空格的字符串。
nextLine()的使用方法演示:
import java.util.Scanner;
public class scannertest2 {
public static void main(String[] args) {
Scanner s = new Scanner(System.in); // 从键盘接收数据
// next方式接收字符串
System.out.println("nextLine方式接收:");
// 判断是否还有输入
if (s.hasNextLine()) {
String str2 = s.nextLine();
System.out.println("输入的数据为:" + str2);
}
s.close();
}
}
nextLine方式接收:
hello world 2018
输入的数据为:hello world 2018
由上面可以看出,nextLine()方法具有以下特点:
1、以Enter为结束符,也就是说 nextLine()方法返回的是输入回车之前的所有字符;
2、可以获得空白,都会读入,空格等均会被识别;
注意:如果要输入 int 或 float 类型的数据,在 Scanner 类中也有支持,但是在输入之前最好先使用 hasNextXxx() 方法进行验证,再使用 nextXxx() 来读取,下面实现的功能是可以输入多个数字,并求其总和与平均数,每输入一个数字用回车确认,通过输入非数字来结束输入并输出执行结果
import java.util.Scanner;
public class scandemo {
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();
}
}
请输入数字:
20.0
30.0
40.0
end
3个数的和为90.0
3个数的平均值是30.0
总结
以上所述是小编给大家介绍的Java Scanner 类的使用小结网站的支持!
来源:https://blog.csdn.net/sinat_41815248/article/details/83104824
猜你喜欢
- 引言ShardingSphere的SQL解析,本篇文章源码基于4.0.1版本ShardingSphere的分片引擎从解析引擎到路由引擎到改写
- 1、注解@PathVariable:将请求url中的占位符参数与控制器方法入参绑定起来(Rest风格请求)@RequestHeader:获取
- 前言虽然从学java的第一个程序——helloworld至今,已经有好几个年头了。当时自己找资料,看视频,学习了java的输入输出流,多线程
- 一、准备工作mybatis-plus作为mybatis的增强工具,它的出现极大的简化了开发中的数据库操作,但是长久以来,它的联表查询能力一直
- 1、何为依赖冲突Maven是个很好用的依赖管理工具,但是再好的东西也不是完美的。Maven的依赖机制会导致Jar包的冲突。举个例子,现在你的
- 1.算法效率算法效率分析分为两种:第一种是时间效率,第二种是空间效率。时间效率被称为时间复杂度,而空间效率被称作空间复杂度。时间复杂度主要衡
- 本节了解一下 SpringBoot 中 Web 开发的静态资源导入和首页设置,对应 SpringBoot-03-Web 项目。1. 静态资源
- 一、项目结构二、pom.xml<?xml version="1.0" encoding="UTF-8&q
- 自定义TypeHandler映射JSON类型为List1. 实体类这里只展示需要映射的字段,分别在所需映射的字段和实体类上添加注解。&nbs
- 一、目的本篇文章的目的是记录本人使用flutter加载与调用第三方aar包。二、背景本人go后端,业余时间喜欢玩玩flutter。一直有一个
- 最近在研究springboot实现FastJson解析json数据的方法,那么今天也算个学习笔记吧!添加jar包:<dependenc
- [LeetCode] 9. Palindrome Number 验证回文数字Determine whether an integer is
- 前言最近在逛博客的时候看到了有关Redis方面的面试题,其中提到了Redis在内存达到最大限制的时候会使用LRU等淘汰机制,然后找了这方面的
- Android Studio 打包 jar 及 aar 包创建工程 New -> Module -> Library在gradl
- 第1部分 ArrayList介绍ArrayList简介ArrayList 是一个数组队列,相当于 动态数组。与Java中的数组相比,它的容量
- 先看代码public class MaxHuiWen {public static void main(String[] args) { &
- 一、前言对于任何框架而言,在使用前都要进行一系列的初始化,MyBatis也不例外。二、MyBatis的初始化做了什么2.1 Mybatis的
- 本文实例讲述了Java中计算时间差的方法。分享给大家供大家参考。具体如下:假设现在是2004-03-26 13:31:40过去是:2004-
- 百度百科说法:Servlet(Server Applet)是Java Servlet的简称,称为小服务程序或服务连接器,用Java编写的服务
- 递归生成一个如图的菜单,编写两个类数据模型Menu、和创建树形的MenuTree。通过以下过程实现:1.首先从菜单数据中获取所有根节点。2.