Scaner对象
Scaner的基本概念
- 之前我们学的基本语法中我们并没有实现程序和人的交互,但是Java给我们提供了这样一个工具类,我们可以获取用户的输入。
- java.tuil.Scanner是Java5的新特征,我们可以通过Scanner类来获取用户的输入。
- 可以进行键盘输入数据,到程序的当中
基本语法:
Scanner sr=new Scanner(System.in);
//System.in表示输出,是一个参数
注意事项:
- 通过Scanner类的next()与nexLine()方法获取输入的字符串,在读取前我们一般需要使用hasNext()与hasNextLine()判断是否还有输入的数据。
- 凡是属于IO流的类如果不关闭会一直占用资源,要养成好习惯用完就关掉
1.使用next() 的方式来接收字符串(使用频率较少)
注意:
- 一定要读取到有效字符后才可以结束输入.
- 对输入有效字符之前遇到的空白,next()方法会自动将其去掉.
- 只有输入有效字符串后,才将其后面输入的空白作为分隔符或者结束符.
- next()不能得到带有空格的字符串.
代码如下
public static void main(String[] args) {
Scanner sr=new Scanner(System.in);
//System.in表示输出,是一个参数
System.out.println("使用next 的方式来接收");
if (sr.hasNext()==true){
//判断用户有没有输入字符串
String str= sr.next();
System.out.println("输入的内容为"+str);
}
sr.close();
//凡是属于IO流的类如果不关闭会一直占用资源,要养成好习惯用完就关掉
}
2.使用nextLine()的方式来接收字符串
- 以Enter为结束符也就说nextLine()方法返回的是输入回车之前的所有字符.
- 可以获取空白.
public static void main(String[] args) {
Scanner sr = new Scanner(System.in);
System.out.println("使用nextLine方式接收数据:");
if (sr.hasNextLine()){
String str = sr.nextLine();
System.out.println("输出的内容为:"+str);
}
sr.close();
}
不判断写法
public static void main(String[] args) {
Scanner sr = new Scanner(System.in);
System.out.println("请输入数据:");
String str = sr.nextLine();
System.out.println("输出的内容为:"+str);
sr.close();
}
进阶使用(练习题)
1.判断输入的是否是整数
public static void main(String[] args) {
Scanner sr = new Scanner(System.in);
int i=0;
float f=0.0f;
//判断输入的是否是整数
if (sr.hasNextInt()){
int result = sr.nextInt();
//是否有下一个整数
System.out.println("您输入的整数是:"+result);
}else{
System.out.println("您输入的不是整数!");
}
sr.close();
2.我们可以输入多个数字,并求其总和与平均数,每输入一个数字用回车确认,通过输入非数字来结束输入并输出执行结果。
public static void main(String[] args) {
Scanner sr = new Scanner(System.in);
System.out.println("请输入数据:");
double sum=0;
double ave=0;
int num=0;
while(sr.hasNextDouble()){
System.out.println("输入x时结束运行");
double get = sr.nextDouble();
//获取输入的数据
num=++num;
sum=sum+get;
ave=sum/num;
System.out.println(num+"个数的和为"+sum);
}
System.out.println(num+"个数的和为"+sum);
System.out.println(num+"个数的和为"+ave);
sr.close();
}
Scaner对象的更多相关文章
- 如何一步一步用DDD设计一个电商网站(九)—— 小心陷入值对象持久化的坑
阅读目录 前言 场景1的思考 场景2的思考 避坑方式 实践 结语 一.前言 在上一篇中(如何一步一步用DDD设计一个电商网站(八)—— 会员价的集成),有一行注释的代码: public interfa ...
- javascript中的Array对象 —— 数组的合并、转换、迭代、排序、堆栈
Array 是javascript中经常用到的数据类型.javascript 的数组其他语言中数组的最大的区别是其每个数组项都可以保存任何类型的数据.本文主要讨论javascript中数组的声明.转换 ...
- 探究javascript对象和数组的异同,及函数变量缓存技巧
javascript中最经典也最受非议的一句话就是:javascript中一切皆是对象.这篇重点要提到的,就是任何jser都不陌生的Object和Array. 有段时间曾经很诧异,到底两种数据类型用来 ...
- Asp.Net WebApi核心对象解析(下篇)
在接着写Asp.Net WebApi核心对象解析(下篇)之前,还是一如既往的扯扯淡,元旦刚过,整个人还是处于晕的状态,一大早就来处理系统BUG,简直是坑爹(好在没让我元旦赶过来该BUG),队友挖的坑, ...
- JS核心系列:浅谈原型对象和原型链
在Javascript中,万物皆对象,但对象也有区别,大致可以分为两类,即:普通对象(Object)和函数对象(Function). 一般而言,通过new Function产生的对象是函数对象,其他对 ...
- Chrome出了个小bug:论如何在Chrome下劫持原生只读对象
Chrome出了个小bug:论如何在Chrome下劫持原生只读对象 概述 众所周知,虽然JavaScript是个很灵活的语言,浏览器里很多原生的方法都可以随意覆盖或者重写,比如alert.但是为了保证 ...
- XStream将java对象转换为xml时,对象字段中的下划线“_”,转换后变成了两个的解决办法
在前几天的一个项目中,由于数据库字段的命名原因 其中有两项:一项叫做"市场价格"一项叫做"商店价格" 为了便于区分,遂分别将其命名为market ...
- ASP.NET内置对象的总结
1. Response对象可形象的称之为响应对象,用于将数据从服务器发送回浏览器. 实例源码:链接: http://pan.baidu.com/s/1dDCKQ8x 密码: ihq0 2. Requ ...
- ADO.NET对象的详解
1. Connection 类 和数据库交互,必须连接它.连接帮助指明数据库服务器.数据库名字.用户名.密码,和连接数据库所需要的其它参数.Connection对象会被Command对象使用,这样就能 ...
随机推荐
- 让webpack打包支持ES7的async/await语法
npm install --save-dev babel-plugin-transform-runtime npm install --save babel-runtime .babelrc配置 { ...
- Shiro踩坑记(一):关于shiro-spring-boot-web-starter自动注解无法注入authorizer的问题
一)问题描述: 我在一个Spring的项目中使用shiro搭建权限控制框架.主要通过shiro-spring-boot-web-starter包快速集成Shiro.但是项目无法启动,报没有author ...
- python画新冠肺炎国内和世界各国累计确诊数量热图
新冠肺炎国内疫情基本控制住,很多地方都开始摘下口罩了.但是国外的疫情依然处于爆发期,特别是美国,截止目前其累计确诊数量已突破110w.五一节北京柳絮杨絮满天飞,不适合外出.在家心血来潮,献丑画一下各地 ...
- 图论--二分图最佳完美匹配(KM模板)
#include <iostream> #include <cstring> #include <cstdio> using namespace std; cons ...
- 谷歌浏览器的F12用处及问题筛查笔记
在前端测试功能的时候,经常有些莫名其妙的错误,这个时候开发会说打开F12看一下吧,所以感觉这个开发者功能很有用,研究一下,做如下记录: Elements:左栏以DOM树形式查看网页源代码(HTML), ...
- 02_Java语法
1.注释 2.关键字 3.标识符 4.常量 5.变量 6.数据类型 7.数据类型转换 8.表达式 9.运算符 9.1算数运算符 9.2赋值运算符 9.3比较运算符 9.4逻辑运算符 9.5三元运算符 ...
- maven的安装及环境变量配置
1.下载maven 2.解压至该路径 3. 新建环境变量MAVEN_HOME , 值为maven包点开路径 环境变量配置: 4. 编辑环境变量Path,追加%MAVEN_HOME%\bin\ 5.一路 ...
- LTE网络概述
LTE主要由两部分组成:无线接入技术演进(E-UTRAN)+系统架构演进(SAE):其中,SAE主要含有的是演进型分组交换核心网(EPC),其控制处理部分为移动性管理实体(MME),数据承载部分称为业 ...
- Spring官网阅读(七)容器的扩展点(二)FactoryBean
在上篇文章中我们已经对容器的第一个扩展点(BeanFactoryPostProcessor)做了一系列的介绍.其中主要介绍了Spring容器中BeanFactoryPostProcessor的执行流程 ...
- mac下使用xampp中php显示1044/1045/1046(卸载xampp)
问题描述 在mac下使用xampp,访问http://192.168.64.3/phpmyadmin/可以正常显示php页面,当创建数据库时提示1044也就是普通用户没有权限 问题猜测 猜测在使用xa ...