控制台程序。

java.util.Scanner类定义的对象使用正则表达式来扫描来自各种源的字符输入,并把输入显示为各种基本类型的一系列标记或者显示为字符串。

默认情况下,Scanner对象读取标记时,假定它们用空白分隔开。对于空白对应的任意字符,Character类中的isWhitespace()方法都返回true。因此,读取标记时,要跳过分隔符,找到不是分隔符的字符,然后尝试以要求的方式解释那些不是分隔符的字符序列。

 import java.util.Scanner;
import java.util.InputMismatchException; public class TryScanner {
public static void main(String[] args) {
Scanner kbScan = new Scanner(System.in); // Create the scanner
int selectRead = 1; // Selects the read operation
final int MAXTRIES = 3; // Maximum attempts at input
int tries = 0; // Number of input attempts while(tries<MAXTRIES) {
try {
switch(selectRead) {
case 1:
System.out.print("Enter an integer: ");
System.out.println("You entered: "+ kbScan.nextLong());
++selectRead; // Select next read operation
tries = 0; // Reset count of tries case 2:
System.out.print("Enter a floating-point value: ");
System.out.println("You entered: "+ kbScan.nextDouble());
++selectRead; // Select next read operation
tries = 0; // Reset count of tries case 3:
System.out.print("Enter a boolean value(true or false): ");
System.out.println("You entered: "+ kbScan.nextBoolean());
}
break;
} catch(InputMismatchException e) {
String input = kbScan.next();
System.out.println("\""+ input +"\" is not valid input.");
if(tries<MAXTRIES) {
System.out.println("Try again.");
} else {
System.out.println(" Terminating program.");
System.exit(1);
}
}
}
}
}

Java基础之一组有用的类——使用Scanner对象(TryScanner)的更多相关文章

  1. Java基础之一组有用的类——为标记定义自己的模式(ScanString)

    控制台程序. Scanner类提供了一种方式,用来指定如何识别标记.这需要使用next()方法的两个重载版本.其中的一个版本接受Pattern类型的参数.另一个版本接受String类型的参数,用来指定 ...

  2. Java基础之一组有用的类——使用正则表达式搜索子字符串(TryRegex)

    控制台程序. 正则表达式只是一个字符串,描述了在其他字符串中搜索匹配的模式.但这不是被动地进行字符序列匹配,正则表达式其实是一个微型程序,用于一种特殊的计算机——状态机.状态机并不是真正的机器,而是软 ...

  3. Java基础之一组有用的类——使用公历日历(TryCalendar)

    控制台程序. 公历是西方使用的日历,用GregorianCalendar类的对象来表示.GregorianCalendar对象封装了时区信息.日期和时间数据.GregorianCalendar对象有7 ...

  4. Java基础之一组有用的类——生成日期和时间(TryDateFormats)

    控制台程序. java.util包中含有相当多的类涉及日期和时间,包括Date类.Calendar类和GregorianCalendar类. Date类对象其实定义了精确到毫秒的时刻,从1970年1月 ...

  5. Java基础之一组有用的类——Observable和Observer对象(Horrific)

    控制台程序. Obserable类提供了一个有趣的机制,可以把类对象中发生的改变通知给许多其他类对象. 对于可以观察的对象来说,类定义中需要使用java.util.Observable类.只需要简单地 ...

  6. Java基础之一组有用的类——使用二叉树搜索算法搜索某个作者(TryBinarySearch)

    控制台程序. Arrays类中的binarySearch()静态方法使用二叉树搜索算法,在有序数组中查找包含给定值的元素.只有当数组的元素按升序方式排序时,该方法才是最有效的,否则就应在调用binar ...

  7. Java基础之一组有用的类——使用比较器对数组排序(TrySortingWithComparator)

    控制台程序. Arrays类中的sort()静态方法把传送为参数的数组元素按升序方式排序. 对于第一个参数类型是Object[]的sort()方法来说,可以传送任意类型的数组.如果使用sort()方法 ...

  8. Java基础之一组有用的类——使用正则表达式查找和替换(SearchAndReplace)

    控制台程序. 使用正则表达式执行查找和替换操作,只需要调用Matcher对象的find()方法,就可以调用appendReplacement()方法来替换匹配的子序列.在提供给方法的新StringBu ...

  9. Java基础-类加载机制与自定义类Java类加载器(ClassLoader)

    Java基础-类加载机制与自定义类Java类加载器(ClassLoader) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 关于类加载器的概念和分类我就不再废话了,因为我在之前的笔 ...

随机推荐

  1. 必应(Bing)每日图片获取API

    必应(Bing)每日图片获取API January 11, 2015 API http://lab.dobyi.com/api/bing.php 介绍 Value Description title ...

  2. Python文件方法

    打开文件 使用open函数,语法格式为:open( name[, mode[, buffering]]),name为打开文件名,mode为打开文件方式,buffering控制文件的缓冲. mode可选 ...

  3. JS获取Cookie值

    function GetLoginCookie() { var userCookie = getCookie("mycookie"); var loginname = userCo ...

  4. BLE GATT规范中关于UUID与属性的详细解析

    1. 角色 除了GAP定义了角色之外,BLE还定义了另外2种角色:GATT服务器和GATT客户端,它们完全独立于GAP的角色.提供数据的设备称为GATT服务器,访问GATT服务器而获得数据的设备称为G ...

  5. C++ 虚函数畅谈

    0x01:前言 虚函数是C++里最重要的概念之一,并且是判定C++是否入门的一个热门问题.今天这篇文章简单谈谈虚函数. 0x02:虚函数简介 虚函数可以被子类实现函数所覆盖. virtual是关键字, ...

  6. 关于c语言二维数组与指针的个人理解及处理办法。

    相信大家在学习C语言时,对一维数组和指针的理解应该是自信的,但是,我在学习过程中,看到网上一些博文,发现即便是参加工作的一些专业编程人员,突然碰到二维数组和指针的问题时,也可能会遇到难以处理的诡异问题 ...

  7. X-UA-Compatible是神马

    X-UA-Compatible是神马 X-UA-Compatible是IE8的一个专有<meta>属性,它告诉IE8采用何种IE版本去渲染网页,在html的<head>标签中使 ...

  8. Qt 之 去除窗口部件被选中后的焦点虚线框(设置Qt::NoFocus即可)

    http://blog.csdn.net/goforwardtostep/article/details/53420529

  9. 【Android测试】【第六节】Monkey——认识和使用

    ◆版权声明:本文出自carter_dream的博客,转载必须注明出处. 转载请注明出处:http://www.cnblogs.com/by-dream/p/4688880.html 自动化工具 接触安 ...

  10. 利用 libiconv 实现汉字编码 utf-8 格式 和 gbk格式的相互转换

    参考文章:http://jimmee.iteye.com/blog/2174693 关于windows上编译libiconv的库,请参见:http://www.cnblogs.com/tangxin- ...