Java流程控制01 用户交互Scanner
Java流程控制1 用户交互Scanner
- 1. Scanner对象
- 2. 测试代码
- 3. 比较
- 4. Scanner进阶使用
1. Scanner对象
1) 在Java中可以通过Scanner类来获取用户的输入。java.util.Scanner是Java5的新特征。
2)基本语法:
Scanner s = new Scanner(System.in);
3)一般使用方法:首先使用hasNext()与hasNextLine()判断是否有输入的数据;然后通过Scanner类的next()与nextLine()方法获取输入的字符串。
2. 测试代码
next()和nextLine()的不同
1)next()
代码:
import java.util.Scanner;public class data {public static void main(String[] args) {//创建一个扫描器对象,用于接收键盘数据Scanner scanner = new Scanner(System.in);//in inputSystem.out.println("使用next方式接收:");//判断用户有没有输入字符串if(scanner.hasNext()){String str = scanner.next();System.out.println("输出的内容为:"+str);}scanner.close();//使用完后关闭,节省资源//凡是属于IO流的类如果不关闭会一直占用资源,因此用完要关闭}
}
结果:
结论:
只能接收hello world中的hello,如果需要接收整句话需要使用nextLine()。
2)nextLine()
代码:
import java.util.Scanner;public class data {public static void main(String[] args) {//创建一个扫描器对象,用于接收键盘数据Scanner scanner = new Scanner(System.in);//in inputSystem.out.println("使用nextLine方式接收:");String str = scanner.nextLine();System.out.println("输出的内容为:"+str);scanner.close();//使用完后关闭,节省资源}
}
结果:
3. 比较
1)next()
a. 一定要读取到有效字符后才可以结束输入;
b. 对输入有效字符之前遇到的空白,next()方法会自动将其去掉;
c. 只有输入有效字符后才能将其后面输入的空白作为分隔符或者结束符;
d. next()不能得到带有空格的字符串。
2)nextLine()
a. 以Enter为结束符,即nextLine()方法返回的是输入回车之前的所有字符;
b. 可以获得空白。
4. Scanner进阶使用
1)需输入int或者float等类型格式,在Scanner中也有支持
import java.util.Scanner;public class data {public static void main(String[] args) {//创建一个扫描器对象,用于接收键盘数据Scanner scanner = new Scanner(System.in);//从键盘接收数据int i = 0;float f = 0.0f;System.out.println("请输入整数:");if (scanner.hasNextInt()){i = scanner.nextInt();System.out.println("整数数据:"+i);}else{System.out.println("输入的不是整数");}System.out.println("请输入小数:");if (scanner.hasNextFloat()){f = scanner.nextFloat();System.out.println("小数数据:"+f);}else{System.out.println("输入的不是小数");} scanner.close();//使用完后关闭,节省资源//凡是属于IO流的类如果不关闭会一直占用资源,因此用完要关闭}
}
2)输入多个数字,并求其总和与平均数,每输入一个数字用回车确认,并通过非数字来结束输入并输出执行结果。
import java.util.Scanner;public class data {public static void main(String[] args) {//创建一个扫描器对象,用于接收键盘数据Scanner scanner = new Scanner(System.in);//定义和double sum = 0;//统计输入多少个数据int m = 0;//通过循环判断是否还有输入,并在里面对每一次进行求和和统计while (scanner.hasNextDouble()) {double x = scanner.nextDouble();m = m + 1;sum = sum + x;System.out.println("你输入了第"+m+"个数据,然后当前结果sum="+sum);}System.out.println("你输入了非数字,结束计算");System.out.println(m+"个数的和为"+sum);System.out.println(m+"个数的平均值是"+(sum / m));scanner.close();//使用完后关闭,节省资源//凡是属于IO流的类如果不关闭会一直占用资源,因此用完要关闭}
}
结果:
Java流程控制01 用户交互Scanner相关推荐
- Java流程控制01-用户交互Scanner
用户交互Scanner 1.Scanner对象 创建Scanner对象的基本语法: import java.util.Scanner;...Scanner s = new Scanner(System ...
- Java学习第六天<用户交互Scanner与进阶使用><顺序结构><选择结构><循环结构1>
用户交互Scanner与进阶使用 public class Demo01 {public static void main(String[] args) {//创建一个扫描对象,用于接收键盘数据Sca ...
- 狂神说学习笔记 Java流程控制
目录 Java流程控制 1.用户交互Scanner Scanner对象 next() nextLine(): 2.顺序结构 3.选择结构 4.循环结构 5.Break & Continue 6 ...
- Java流程控制相关知识(四)
Java流程控制 1.用户交互Scanner Scanner对象 Java提供了一个工具,我们可以获取用户的输入.java.util.Scanner 是 Java5 的新特征,我们可以通过Scanne ...
- JAVA流程控制(2021-07-11)
Java流程控制 图片来源 01 用户交互Scanner public class demo01 {public static void main(String[] args) {//创建一个扫描器对 ...
- Java流程控制——用户交互Scanner
用户交互Scanner Scanner对象 之前的学的基本语法中我们并没有实现程序与人的交互,但是Java给我们提供了这样一个工具类,让我们可以获取用户的输入.Java.util.Scanner 是J ...
- 一起来学java!!! day003 流程控制01 你掉了金斧头还是银斧头?
java day003 流程控制 01 流程控制之分支结构 1. if 语句 if (/* 条件语句 */) {/*功能语句块*/} 流程:当执行if语句时,先会判断小括号内的条件语句,若条件语句为t ...
- Java流程控制(一)
Java流程控制(一) 用户交互Scanner · java.util.Scanner是Java5的新特征,我们可以通过Scanner类来获取用户的输入. · 基本语法: Scanner s = ne ...
- Java学习2——Java流程控制
文章目录 用户交互Scanner Scanner对象 练习题 顺序结构 选择结构 循环结构 break & continue & goto 流程控制练习 感想 用户交互Scanner ...
最新文章
- Visual Studio 2008 Samples Page
- iOS之 NSTimer(一)
- win10英伟达NVIDIA无法登录
- java8获取实现某个接口的所有类_Java 试题八
- 洛谷 题解 P4955 【[USACO14JAN]Cross Country Skiing 越野滑雪】
- CF 1529C Parsa‘s Humongous Tree
- spring mysql 连接池配置_SpringBoot数据库连接池常用配置
- 总结的若干关于RecursionError: maximum recursion depth exceeded问题的解决办法
- ubuntu不会自动休眠_关机、睡眠、休眠有啥区别?微软说非特殊情况不要关机
- your system apperars to have shutdown uncleanly
- 全卷积网络 FCN 详解
- html表单提交数据保存到mysql中_php – Canonical:如何将HTML表单数据保存到MySQL数据库中...
- HeadFirst设计模式笔记——命令模式
- 分布式光纤传感技术(DTS/BOTDA/BOTDR/光栅/OTDR)近几年会有较快的发展(本人预测)
- 第十二届蓝桥杯 杨辉三角形 Python题解 满分
- 想要糖尿病逆转,健康饮食必不可少
- 转载: dropout为啥要rescale?
- 深度教练:让深度学习模拟人类教学过程,大幅减少训练数据和时间
- mysql删除密码代码_mysql 用户新建、受权、删除。密码修改
- 搜索python设计题的微信公众号_appium+python自动化42-微信公众号 (可能以后会遇到也遇到切换不了webview的问题 记录再此 还没试)...
热门文章
- java创建文件夹和文件_Java创建文件夹与创建文件
- 排序——宇宙总统(洛谷 P1781)
- mysql防止数据查找不到_为了防止数据库崩溃使数据丢失的解决方案
- linux hibernate suspend 区别,实现Linux休眠(sleep/hibernate)和挂起(suspend)[转]
- 定积分华里士公式推广_数学分析第九章《定积分》备考指南
- 数据 3 分钟 | TiDB 5.0 正式发布、Graph + AI 2021 全球峰会即将召开、2020 年图灵奖公布...
- 使用DataSync迁移数据到Gaussdb T
- Oracle 20c 新特性详解:SQL Macro 宏 SCALAR / TABLE 模式带来的敏捷和便利
- ElasticSearch最全详细使用教程:入门、索引管理、映射详解
- 如何花“一点点小钱”突破华为云CCE服务的“防线”