java中没有scanner_如何使用java.util.Scanner验证输入?
小编典典
示例1:验证正整数
这是一个hasNextInt()用于int从输入中验证肯定的简单示例。
Scanner sc = new Scanner(System.in);
int number;
do {
System.out.println("Please enter a positive number!");
while (!sc.hasNextInt()) {
System.out.println("That's not a number!");
sc.next(); // this is important!
}
number = sc.nextInt();
} while (number <= 0);
System.out.println("Thank you! Got " + number);
结果:
Please enter a positive number!
five
That's not a number!
-3
Please enter a positive number!
5
Thank you! Got 5
请注意Scanner.hasNextInt(),与更详细try/catch Integer.parseInt/ NumberFormatException组合相比,使用起来要容易得多。通过合同,一个Scanner 保证,如果它hasNextInt(),然后nextInt()将安静地给你int,并不会引发任何NumberFormatException/ InputMismatchException/ NoSuchElementException。
示例2:hasNextXXX同一令牌上有多个
请注意,上面的代码段包含一个sc.next()语句,以使Scanner直到它前进hasNextInt()。重要的是要意识到,没有一种 hasNextXXX 方法可以 Scanner 超越任何输入!你会发现,如果你从代码段中省略了这一行,那么它将在无效输入上陷入无限循环!
这有两个结果:
如果你需要跳过“垃圾”输入失败的hasNextXXX测试,那么你需要提前Scanner一个这样或那样的(例如next(),nextLine(),skip等)。
如果一项hasNextXXX测试失败,你仍然可以进行测试hasNextYYY!
这是执行多个hasNextXXX测试的示例。
Scanner sc = new Scanner(System.in);
while (!sc.hasNext("exit")) {
System.out.println(
sc.hasNextInt() ? "(int) " + sc.nextInt() :
sc.hasNextLong() ? "(long) " + sc.nextLong() :
sc.hasNextDouble() ? "(double) " + sc.nextDouble() :
sc.hasNextBoolean() ? "(boolean) " + sc.nextBoolean() :
"(String) " + sc.next()
);
}
输出结果:
5
(int) 5
false
(boolean) false
blah
(String) blah
1.1
(double) 1.1
100000000000
(long) 100000000000
exit
请注意,测试顺序很重要。如果是Scanner hasNextInt(),那么它也是hasNextLong(),但不一定true是相反的方式。通常,你想在进行更通用的测试之前先进行更具体的测试。
示例3:验证元音
Scanner具有正则表达式支持的许多高级功能。这是一个使用它来验证元音的示例。
Scanner sc = new Scanner(System.in);
System.out.println("Please enter a vowel, lowercase!");
while (!sc.hasNext("[aeiou]")) {
System.out.println("That's not a vowel!");
sc.next();
}
String vowel = sc.next();
System.out.println("Thank you! Got " + vowel);
输出结果:
Please enter a vowel, lowercase!
5
That's not a vowel!
z
That's not a vowel!
e
Thank you! Got e
2020-01-10
java中没有scanner_如何使用java.util.Scanner验证输入?相关推荐
- java中的jpa_JPA教程–在Java SE环境中设置JPA
java中的jpa JPA代表Java Persistence API,它基本上是一个规范,描述了一种将数据持久存储到持久存储(通常是数据库)中的方法. 我们可以将其视为类似于Hibernate之类的 ...
- Java 位运算理解 Java中的位移运算整理 Java右移n位 Java左移n位
Java 位运算理解 Java中的位移运算整理 Java右移n位 Java左移n位 一.概述 1.在浏览一篇文章时,看到一个介绍 ,使用位移操作替代乘除法 ,若位移多位该怎么计算呢? 二.代码理解 ...
- Java中的字符集编码入门Java中的增补字符
转载自:http://jiangzhengjun.iteye.com/blog/512083 Java中的字符集编码入门Java中的增补字符 博客分类: 字符集编码 Java Java号称对Unico ...
- java中怎样克隆,如何在Java中克隆列表?
要克隆Java中的列表,最简单的方法是使用ArrayList.clone()方法- 示例import java.util.ArrayList; public class Demo { public s ...
- 在java中goto是意思,关于Java中的goto语句
自学Java遇到的问题1 goto语句的问题 1.1 背景 2.1 尝试 3.1 总结 goto语句的问题 今天是我自学Java第4天,开始写博客记录学习中遇到的问题.给后来者一些借鉴,也给自己以后回 ...
- java中timer和timertask_使用Java中的Timer和TimerTask
有的时候我们需要每隔一段时间去执行某个任务,在Java中提供了Timer and TimerTask来完成这个任务,本文提供一个应用程序的源代码告诉你如何使用这两个类. Timer和TimerTask ...
- Java中的enum详细解析------Java 语言中 Enum 类型的使用介绍
Enum 类型的介绍 枚举类型(Enumerated Type) 很早就出现在编程语言中,它被用来将一组类似的值包含到一种类型当中.而这种枚举类型的名称则会被定义成独一无二的类型描述符,在这一点上和常 ...
- java 中的枚举_说说Java中的枚举(一)
在实际编程中,往往存在着这样的"数据集",它们的数值在程序中是稳定的,而且"数据集"中的元素是有限的.例如星期一到星期日七个数据元素组成了一周的"数据 ...
- java中变量 关键字_基于java的voliate关键字详解
voliate关键字的作用: 一.内存可见性 基于缓存一致性协议,当用voliate关键字修饰的变量改动时,cpu会通知其他线程,缓存已被修改,需要更新缓存.这样每个线程都能获取到最新的变量值. 二. ...
最新文章
- Shell 函数、数组与正则表达式
- spring外部化配置
- 问题:为命名空间,在此被用作类型和此项目作为引用添加将导致循环依赖项
- linux中三个time:atime、mtime、ctime
- 救基友记2_JAVA
- 《Cocos2D-x权威指南》——3.7 容器类
- 说出你的需求,我们AI给你写代码 | MIT新研究
- Unity使用FGUI的基本操作(一)
- 信息系统管理师备考指南
- 阿帕奇服务器文件上传,windows基于阿帕奇+PHP服务器,实现vc++文件上传功能
- 断点续传视频无法播放问题,合块发现视频无法播放
- 迷茫了,就带她去一趟阿鲁巴K
- java随机生成三位数
- 每天花半小时给孩子讲故事,把他培养成依赖书的人种
- 萨班斯-奥克斯利法案 (SOX) 特权账号管理
- RV1126 Linux 以太网MAC PHY 芯片8201f gmac dts配置
- win10系统怎么搜索xp计算机,win10安装xp系统的详细操作步骤
- Redis入门指南之复制
- php die 跳转,php里or die的常见用法
- echarts 树图属性设置
热门文章
- Adobe Livecycle ES Workbench
- 如何通过query获得一个product的所有附件
- Java初始化顺序研究
- nodejs连接redis,redis服务器的地址格式应该怎么写
- SAP Cloud for Customer销售订单External Note的建模细节
- 关于SAP Fiori Smart Template开发的一些实际例子
- 找出SAP OData service出错根源的小技巧
- 无法使用tomcat6.exe启动服务
- java spring mvc 上传_Java Spring MVC 上传下载文件配置及controller方法详解
- win7 asp虚拟服务器,win7怎么利用ASP获取服务器IP地址 win7利用ASP获取服务器IP地址教程...