java(安全方便的从控制台读入数据)[对Scanner类进行封装,用正则表达式判断]
2012-08-15 08:48
519 查看
此版本是对自己的这篇博客中的源码进行了优化: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版的webservice,完全用java的正则表达式对websercice的xml进行解析,可以很快用到web中,只需要调用其中的封装好的方法
- @V@ java代码笔记2010-06-12:java控制台输入各类型类实现;以及判断输入字符串里面是否有数字的两种方法:方法1:转换成字符数组;方法2:正则表达式。
- java中用正则表达式进行判断
- 树状结构中展示的数据从数据库取出后进行再次封装使其方便UI层调用
- java利用正则表达式判断是否是浮点数
- java第七周封装一类对矩阵操作的对象,该类对象能够对矩阵进行运算,如矩阵中数据的位置变换功能、矩阵的加法功能、矩阵的乘法功能。
- Java正则表达式判断手机号的例子
- java中正则表达式判断IP格式
- Java正则表达式判断是否为手机号码
- Java 正则表达式提取两个分隔符之间的数据
- 使用Java正则表达式去掉Double类型的数据后面多余的0
- Java正则表达式 url和email并进行分割
- JAVA接收控制台数据Scanner类---输入
- JAVA正则表达式判断图片格式
- java正则表达式判断数字
- java正则表达式抽取html数据
- 利用正则表达式 进行字符的判断