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对象使用,这样就能 ...
随机推荐
- Zabbix数据库表分区
zabbix的监控主机数量将近300,且运行了一年时间了,最近zabbix server服务监控历史数据等服务不断自身告警.查询性能也变得很低 关于历史数据的两个参数,在zabbix server的配 ...
- Spring5参考指南:基于注解的容器配置
文章目录 @Required @Autowired @primary @Qualifier 泛型 @Resource @PostConstruct和@PreDestroy Spring的容器配置可以有 ...
- 47000名开发者每月产生30000个漏洞 微软是如何用AI排查的
目前微软共有 47000 多名开发人员,每月会产生将近 30000 个漏洞,而这些漏洞会存储在 100 多个 AzureDevOps 和 GitHub 仓库中,以便于在被黑客利用之前快速发现关键的漏洞 ...
- 2018年要学习的10大Python Web框架
通过为开发人员提供应用程序开发结构,框架使开发人员的生活更轻松.他们自动执行通用解决方案,缩短开发时间,并允许开发人员更多地关注应用程序逻辑而不是常规元素. 在本文中,我们分享了我们自己的前十大Pyt ...
- FreeRTOS-Qemu 实现三任务同步通信机制以及API信息
1. 本次作业的考察要点: 作业地址:github.com/HustWolfzzb-Git/GCC/GDB/QEMU等工具的使用.FreeRTOS多任务同步和通信机制的掌握. 2. 编程作业: 在gi ...
- Apache2.4 根目录修改
需要修改两个地方: 1.httpd.conf 中的 DocumentRoot 项 和 Directory 项 2.httpd-vhosts.conf 中的 DocumentRoot 项 网上找到的大部 ...
- php并发加锁
CleverCode在工作项目中,会遇到一些php并发访问去修改一个数据问题,如果这个数据不加锁,就会造成数据的错误.下面CleverCode将分析一个财务支付锁的问题. 1 没有应用锁机制 1.1 ...
- C语言编程入门题目--No.12
题目:判断101-200之间有多少个素数,并输出所有素数. 1.程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除, 则表明此数不是素数,反之是素数. 2.程序源代码: # ...
- 数学--数论-- HDU6298 Maximum Multiple 打表找规律
Given an integer nn, Chiaki would like to find three positive integers xx, yy and zzsuch that: n=x+y ...
- P4168 蒲公英
神仙分块,把减写成加调了半小时.. 不过这题也启示我们其实有的分块题要把多个块的信息拿到一起维护 以前做的都是每个块的信息单独维护 写的分块题还不太多,同时维护一个块的左右边界好像有点冗余,不过这样代 ...