java(安全方便的从控制台读入数据)[对Scanner类进行封装,用正则表达式判断]
来源:互联网 发布:尘埃3中文版下载mac 编辑:程序博客网 时间:2024/06/09 14:25
此版本是对自己的这篇博客中的源码进行了优化:http://blog.csdn.net/haifengzhilian/article/details/7835404
package com.iflytek.util;import java.util.*;import java.util.regex.Pattern;/** * 类名:GetSafeInput * 作用:在控制台中安全的读入一个数值 ------ 整型或浮点型 * * 方法: * 1,用 try ... catch ... (会损失效率,最好不要用) * 2,用正则表达式 * * 方法2--说明: * 阻塞的方式,用Scanner从控制台安全的读入一个数 * * 创建时间:2012-8-6 15:20 * * 修改时间:2012-8-6 16:31 * 说明: 添加:public static int getInt() * 添加:public static int getDouble() * 其他BUG修正 * 2012-8-14 19:21 * 说明: 添加 getString()方法; * 将类名由GetSafeNumber改为GetSafeInput * 2012-8-27 12:32 * 说明: 对正则表达式进行修改,去除负号的异常错误 * * * @author 常维军 * */public class GetSafeInput{/** * 阻塞式的从控制台读入一个安全的整数 * 说明:显式使用Scanner对象 * @param sc Scanner对象 * @return 如果是整数则返回,如果不是整数继续读取,知道读入一个整数结束 */public static int getInt(Scanner sc){String inputs = sc.next();while(!isInteger(inputs)) {System.out.println("格式不正确,请重新输入");inputs = sc.next();}return Integer.valueOf(inputs);}/** * 阻塞式的从控制台读入一个安全的整数 * 说明:隐式使用Scanner对象 * @return 如果是整数则返回,如果不是整数继续读取,知道读入一个整数结束 */public static int getInt(){Scanner sc = new Scanner(System.in);String inputs = sc.next();while(!isInteger(inputs)) {System.out.println("格式不正确,请重新输入");inputs = sc.next();}return Integer.valueOf(inputs);}/** * 阻塞式的从控制台读入一个安全的浮点数 * 说明:显式使用Scanner对象 * @param sc Scanner对象 * @return 如果是浮点数则返回,如果不是浮点数继续读取,知道读入一个正确的浮点数结束 */public static double getDouble(Scanner sc){String inputs = sc.next();while(!isDouble(inputs)) {System.out.println("格式不正确,请重新输入");inputs = sc.next();}return Double.valueOf(inputs);}/** * 阻塞式的从控制台读入一个安全的浮点数 * 说明:隐式使用Scanner对象 * @return 如果是浮点数则返回,如果不是浮点数继续读取,知道读入一个正确的浮点数结束 */public static double getDouble(){Scanner sc = new Scanner(System.in);String inputs = sc.next();while(!isDouble(inputs)) {System.out.println("格式不正确,请重新输入");inputs = sc.next();}return Double.valueOf(inputs);}/** * 判断是否是浮点数 * 方法:利用正则表达式 * @param s 需要判断的字符串 * @return 是浮点数返回真,否则返回假 */public static boolean isDouble(String s){Pattern pattern = Pattern.compile("(\\-?)[0-9]+(\\.?)[0-9]*");if(pattern.matcher(s).matches()) {return true;}return false;}/** * 判断是否是整数 * 方法:利用正则表达式 * @param s 需要判断的字符串 * @return 是整数返回真,否则返回假 */public static boolean isInteger(String s){Pattern pattern = Pattern.compile("(\\-?)[0-9]+");if(pattern.matcher(s).matches()) {return true;}return false;}/** * 隐式使用Scanner对象,从控制台读入字符 * 添加日期:2012-8-14 * @return 从控制台获取的字符 */public static String getString() {String inputString = null;Scanner scanner = new Scanner(System.in);inputString = scanner.next();return inputString;}/** * 显式使用Scanner对象,从控制台读入字符 * 添加日期:2012-8-14 * @return 从控制台获取的字符 */public static String getString(Scanner sc) {String inputString = null;inputString = sc.next();return inputString;}}
- java(安全方便的从控制台读入数据)[对Scanner类进行封装,用正则表达式判断]
- java(安全方便的从控制台读入数据)[对Scanner类进行封装,用正则表达式判断]
- java从控制台读入数据的方法
- java从控制台读入数据的方法
- Java从控制台读入数据的几种方法
- 【引用】Java从控制台读入数据的几种方法
- 用java&正则表达式对数字和字符进行判断
- Java中从控制台输入数据的几种常用方法(scanner)
- Java Scanner类从控制台读取输入
- Scanner从控制台获取数据
- 控制台输入数据类java.util.Scanner
- JAVA接收控制台数据Scanner类---输入
- java从控制台读入数据(各JDK版本)
- java 扫描仪 Scanner 进行数据的输入
- 通过Scanner从控制台获取数据
- 通过Scanner从控制台获取数据
- 通过Scanner从控制台获取数据
- 从控制台读入double数据的容错处理(附完整可运行代码)
- AdobeAir跨平台移动企业开发架构
- XML基础--解析(Dom4J)
- 推荐一个方便生成ToString和Equals等方法的Eclipse插件
- 小崔说事——傻瓜式:倾心打造CSDN个性化模块
- 推荐一款好好用的截图软件
- java(安全方便的从控制台读入数据)[对Scanner类进行封装,用正则表达式判断]
- android:scaleType属性
- linux应用程序开发一,文件编程——知识要点
- DataGridView 分页
- 工作流基础
- Android之自定义Adapter的ListView
- 新词举例记忆WSE
- SVN服务器搭建
- SVN导入导出