日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

java(安全方便的从控制台读入数据)[对Scanner类进行封装,用正则表达式判断]...

發布時間:2025/3/8 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java(安全方便的从控制台读入数据)[对Scanner类进行封装,用正则表达式判断]... 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

此版本是對自己的這篇博客中的源碼進行了優化: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;} }


轉載于:https://www.cnblogs.com/wjchang/archive/2012/08/15/3671577.html

總結

以上是生活随笔為你收集整理的java(安全方便的从控制台读入数据)[对Scanner类进行封装,用正则表达式判断]...的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。