java程序员从笨鸟到菜鸟之(十三)Scanner类
来源:互联网 发布:淘宝卖家怎么做微淘 编辑:程序博客网 时间:2024/05/15 01:00
Scanner类
1)Scanner:用来创建一个文本扫描器(键盘录入)
2)java高级特性:IO流(后面讲)
BufferReder:字符缓冲流来键盘录入
System类中的静态字段(后续补充)
public static final InputStream in:标准输入流
InputStream :字节流
用法:InputStream is = System.in ;实质:抽象类多态
public static final OutputStream out:标准输出流
开发步骤:
1)创建键盘录入对象
2)录入数据
3)输出
实例1:
package org.westos.scanner_01;import java.util.Scanner;public class ScannerDemo {public static void main(String[] args) {//创建键盘录入对象Scanner sc = new Scanner(System.in) ;//录入数据int a = sc.nextInt() ;System.out.println("a:"+a);}}}}
1)Scanner类中常用的方法:
判断的功能:细节:可以添加逻辑判断
hasNextXXX(); 在录入数据之前,加上判断功能,判断是否由下一个可以录入的XXX类型的数据
nextXXX();通过录入获取这个int类型的数据
举例:public boolean hasNextInt();
返回值类型:boolean
nextInt() :录入int类型的数据
nextLine():录入一个字符串类型
异常:java.util.InputMismatchException---输入和想要到的数据不匹配
实例2:
package org.westos.scanner_01;import java.util.Scanner;public class ScannerDemo2 {public static void main(String[] args) {//创建键盘录入对象Scanner sc = new Scanner(System.in) ;if(sc.hasNextInt()){//是否有下一个可以录入的int类型的数据---判断引用是否为空//录入数据int a = sc.nextInt() ;System.out.println("a:"+a);}else{//错误提示System.out.println("录入的数据类型和想要的不匹配!");}//java.util.InputMismatchException:输入和想到的数据不匹配}}注意事项:如果先录入int类型的数据,再录入String类型数据,第二次录入的数据没有接收到,直接输出结果了;
原因:由于"回车"才能接收数据,此时把"回车换行符"当做"字符串"导致的!
解决方案:在第二次录入String类型数据之前,需要重新创建键盘录入对象录入String类型
实例3:
package org.westos.scanner_01;import java.util.Scanner;public class ScannerDemo3 {public static void main(String[] args) {//键盘录入对象Scanner sc = new Scanner(System.in) ;//先录入两个int类型的数据/*int a = sc.nextInt() ;int b = sc.nextInt() ;System.out.println("a:"+a+",b:"+b);*///录入两个String类型的数据//hasNextLine/*String a = sc.nextLine() ;String b = sc.nextLine() ;*///先录入String类型的数据,在录入int类型的数据/*String a = sc.nextLine() ;int b = sc.nextInt() ;*///先录入int类型,再录入String类型int a = sc.nextInt() ; //String b = sc.nextLine() ;String b = sc.next() ;/*int a = sc.nextInt() ;//创建键盘录入对象Scanner sc2 = new Scanner(System.in) ;String b = sc2.nextLine() ;*/System.out.println("a:"+a+",b:"+b);}}
Scanner练习
实例4:
(模拟用户登录玩猜字游戏)
package org.westos.string_03;import java.util.Scanner;//提供猜数字游戏的类public class GuessNumberGame {//构造私有,通过静态功能private GuessNumberGame(){}//静态功能public static void start(){//生成一个随机数:Math.random() ;int number = (int) (Math.random()*100 +1) ;//定义一个统计变量int count = 0 ;//由于多次录入while(true){//创建键盘录入对象Scanner sc = new Scanner(System.in);System.out.println("请您输入一个数据:");int guessNumber = sc.nextInt() ;//统计变量++count ++ ;//判断if(guessNumber > number){System.out.println("您猜的数据"+guessNumber+"大了");}else if(guessNumber < number){System.out.println("您猜的数据"+guessNumber+"小了");}else {System.out.println("恭喜您"+count+"次猜中了...");break ;}}}}测试类:
package org.westos.string_03;import java.util.Scanner;/** * 需求:模拟用户登陆,给3次机会,并给提示 * * 分析: * 假设: * 1)定义一个用户和密码 * String name = "admin" ; * String password = "admin" ; * 2)创建键盘录入对象,录入用户名和密码 * 3)给3次机会,使用for循环进行操作for(int x = 0 ; x <3 ; x ++){} * * 录入:录入的用户和密码来和已经存在的用户名和密码进行比较, * 判断:如果一致: * 登陆成功 * 不一致: * 有一个不符合,就登陆不成功 * if((2-x)==0){ * }else{ * //输出还有(2-x)次机会 * } * */public class StringTest {public static void main(String[] args) {//定义用户名和密码String name = "admin" ;String password = "admin" ;//给3次机会for(int x = 0 ; x <3 ; x ++){//创建键盘录入对象Scanner sc = new Scanner(System.in) ;System.out.println("请输入用户名: ");String newUserName = sc.nextLine() ;System.out.println("请输入密码:");String newPassword = sc.nextLine() ;//判断if(name.equals(newUserName) && password.equals(newPassword)){//一致了System.out.println("登陆成功,开始玩游戏....");//加入猜数字游戏GuessNumberGame.start() ;break ;}else{//登陆不成功//2,1,0//如果是0次机会了,换一种提示if((2-x)==0){System.out.println("速与管理员联系...");}else{//不是0次System.out.println("你还有:"+(2-x)+"次机会");}}}}}
阅读全文
0 0
- java程序员从笨鸟到菜鸟之(十三)Scanner类
- java程序员从笨鸟到菜鸟之(二十三)集合之List接口
- Java程序员从笨鸟到菜鸟之(十三)java网络通信编程
- Java程序员从笨鸟到菜鸟之(十三)java网络通信编程
- Java程序员从笨鸟到菜鸟之(十三)java网络通信编程
- Java程序员从笨鸟到菜鸟之(十三)java网络通信编程
- Java程序员从笨鸟到菜鸟之(十三)java网络通信编程
- Java程序员从笨鸟到菜鸟之(十三)java网络通信编程
- Java程序员从笨鸟到菜鸟之(十三)java网络通信编程
- Java程序员从笨鸟到菜鸟之(十三)java网络通信编程
- Java程序员从笨鸟到菜鸟之(二十三)常见乱码解决以及javaBean基础知识
- Java程序员从笨鸟到菜鸟之(二十三)常见乱码解决以及javaBean基础知识
- Java程序员从笨鸟到菜鸟之(二十三)常见乱码解决以及javaBean基础知识
- Java程序员从笨鸟到菜鸟之(二十三)常见乱码解决以及javaBean基础知识
- Java程序员从笨鸟到菜鸟之(六十二)细谈Hibernate(十三)session缓存机制和三种对象状态
- Java程序员从笨鸟到菜鸟之(七十一)细谈struts2(十三)struts2实现文件上传和下载详解
- Java程序员从笨鸟到菜鸟之(六十二)细谈Hibernate(十三)session缓存机制和三种对象状态
- java程序员从笨鸟到菜鸟之(十一)Object类
- 活字格企业Web应用生成器V3.0发布更新,支持插件管理和多人协作开发
- 高数 01.09连续函数的运算与初等函数的连续性
- 冬虫夏草
- 项目 : error PRJ0002 : 错误的结果 31
- leetcode9. Palindrome Number
- java程序员从笨鸟到菜鸟之(十三)Scanner类
- Ubifs 文件系统的制作和启动
- 使用keil5自带库创建STM32工程
- LeetCode--Sqrt(x)Python
- windows系统下Vue环境搭建(npm方式)
- Kolla部署OpenStack失败问题(3)
- Redis 客户端 Jedis的使用
- 穷逼程序员万圣节穿什么
- 原生js实现检测对象变化