Java_Scanner的使用
Scanner对象
- Java的基本语法中没有实现程序和人的交互, 但是Java给我们提供了这么一个工具类, java.util.Scanner是Java5的新特性, 我们可以通过Scanner类类获取用户的输入.
- 基本语法
Scanner s = new Scanner(System<in); - 通过Scanner类的next()与nextLine()方法回去输入的字符串, 在读取前我们一般需要受用hasNext()与hasNextLine()判断是否还有输入的数据.
package com.broky.scanner;
import java.util.Scanner;
public class Demo{
public static void main(String[] args){
//创建一个扫描器对象, 用于接收键盘数据
Scanner scanner = new Scanner(System.in);
System.out.println("使用next方式接收:");
//判断用户没有输入字符串
if(scanner.hasNext()){
//使用next方式接收
String str = scanner.next();
System.out.ptintln("输出的内容为: "+str);
}
//凡是属于IO流的类如果不关闭会一直占用资源, 要养成用完就关闭的好习惯
scanner.close(); //使用完scanner要关闭, 不然会占用内存资源
}
}
scanner.next()和scanner.nextln()的区别
- next()
- 一定要读取到有效字符后才可以结束输入
- 对输入有效字符之前遇到的空白, next()方法会自动将其去掉
- 只有输入有效字符后才能将其后面输入的空白作为分隔符或结束符
- next()不能得到带有空格的字符串
- nextLine()
- 以Enter为结束符, 也就是说nextLine()方法返回的是输入回车之前的所有字符
- 可以得到空白
scanner.hasNext()和scanner.hasNextln()
- scanner.hasNext()
- 输出为布尔值。
- 判断输入的缓存中是否有效字符,遇到空格结束。
- 如果只输入空格,不会匹配,返回false。
- scanner.hasNextln()
- 以Enter为结束符,判断此行有没有输入,空白输入也会返回true。
- 对于其运行流程的理解
import java.util.Scanner;
public class Demo{
public static void main(String[] args){
if(scanner.hasNext()){ //运行到此行时用户就要输入数据,输入的数据存在于缓存中,判断为true后运行if中的语句,为false则跳出if语句
//由于scanner缓存中有输入的数据,所以这行并不会让用户继续输入一个数据,而是会将缓存中存在的数据直接传递给scanner.next()
String str = scanner.next();
//但缓存中的数据传递出去后,缓存中就为空了.
System.out.ptintln("输出的内容为: "+str);
}
String str2 = scanner.next(); //由于缓存中没有数据,所以运行此语句是,会让用户输入一个数据.
scanner.close();
}
}
Scanner拓展
- 设计一个程序, 接收用户输入的多个数字, 并求总和和平均数, 每输入一个数字用回车确认, 通过输入非数字来结束输入并输出执行结果.
package com.broky.base;
import java.util.Scanner;
public class Demo02 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
double sum = 0.0; //用于计算总和
int i = 0; //计算输入的多少个数字
//通过循环判断是否还有输入,并在里面对每一次进行求和统计
while (scanner.hasNextDouble()) {
sum = sum + scanner.nextDouble();
sum++;
i++;
}
scanner.close();
System.out.println(sum);
System.out.println(i);
}
}
视频课程
Java_Scanner的使用的更多相关文章
- Java_Scanner和System类
目录 Scanner类(util包) System类(lang包) Scanner类(util包) Scanner类是一个不可变的类,实现了迭代器接口.一个简单的文本扫描器,可以使用正则表达式解析原始 ...
- java_Scanner类、Random类、ArrayList 类的使用
Scanner类 一个可以解析基本类型和字符串的简单文本扫描器. 例如,以下代码使用户能够从 System.in 中读取一个数: Scanner in=new Scanner(System.in); ...
- JAVA_Scanner 键盘输入
键盘输入语句 介绍:在编程中,需要接收用户输入的数据,就可以使用键盘输入语句来获取.Input.java , 需要一个 扫描器(对象), 就是 Scanner 步骤: 导入该类的所在包, java.u ...
随机推荐
- java的命令行参数到底怎么用,请给截图和实际的例子
8.2 命令行参数示例(实验) public class Test { public static void main(String[] args){ if(args.length ...
- echarts中饼图的legend自定义icon图片(扇形为例)
效果图: 代码: 问题:// icon: "pin", // 这个字段控制形状 类型包括 circle,rect ,roundRect,triangle,diamond,pin,a ...
- 整合SSM框架环境搭建
知识要求 MySQL相关操作 Maven操作 Mybatis.Spring.SpringMVC三个框架基本操作 JavaWeb等知识 搭建环境 MySQL 8.0 Mybatis 3.5.2 使用c3 ...
- Struts2中将表单数据封装到List和Map集合中
一.将表单数据封装到Map集合中 1.创建MapAction类 import cn.entity.User; import com.opensymphony.xwork2.ActionSupport; ...
- springboot项目找不到符号问题以及模块聚合项目maven插件使用的相关问题
问题如图 更换maven,清空缓存重新导入依赖依然无效后 解决方法: 方式一:删除项目中.idea文件夹,重新打开项目,选中jdk版本 ,重新导入依赖即可. 最近又遇到找不到符号问题,本地运行没问题, ...
- 【jenkins】04.SSH认证方式拉取Git代码
首先需要会git ssh 我们一般用http的形式拉取代码. ssh的好处就是不用每次输入密码,而且貌似会快丢丢,不知道是不是错觉. 大概需要三个步骤: 一.本地生成密钥对: 二.设置github上的 ...
- DFS与N皇后问题
DFS与N皇后问题 DFS 什么是DFS DFS是指深度优先遍历也叫深度优先搜索. 它是一种用来遍历或搜索树和图数据结构的算法 注:关于树的一些知识可以去看<树的概念及基本术语>这篇文章 ...
- 【直播回顾】OpenHarmony知识赋能第四期第四课——音频驱动开发
3月31日晚上19点,知识赋能第四期直播的第四节,也是本期最后一节直播课<OpenHarmony标准系统HDF框架之音频驱动开发>,在OpenHarmony开发者成长计划社群内成功举办 ...
- 几个i的幂的累加公式1^2+2^2+3^2 2~5
1^2+2^2+3^2+--+n^2=n(n+1)(2n+1)/6 1^3+2^3+3^3+...+n^3=(1+2+3+...+n)^2 =[n(n+1)/2]^2 1^4+2^4+3^4+--+n ...
- Blazor使用区域(Area)
在MVC中,我们经常使用区域(Area)来区分各个模块,比如后台我们可以写一个Admin的Area. 到了Blazor时代,已经不推荐这么做了,现在推荐的做法是通过Url来区分,比如Admin可以配置 ...