首页 > 其他分享 >工具类-获取控制台输入

工具类-获取控制台输入

时间:2023-02-18 12:34:50浏览次数:27  
标签:return String 获取 limit str 字符串 static 控制台 输入

/**
 * 工具类的作用
 * 处理各种情况下用户的输入,并且能够按照程序员的要求,得到用户的控制台输入。
 */
public class Utility {
    //静态属性
    private static Scanner scanner = new Scanner(System.in);


    /**
     * 功能:读取键盘输入的一个菜单选项,值:1-5的范围
     *
     * @return 1-5
     */
    public static char readMenuSelection() {
        char c;
        while (true) {
            String str = readKeyBoard(1, false);
            c = str.charAt(0);//将字符串转换为字符char
            if (c != '1' && c != '2'
                    && c != '3' && c != '4' && c != '5') {
                System.out.println("选择错误,请重新输入!");
            } else break;
        }
        return c;
    }

    /**
     * 功能:读取键盘输入的一个字符,如果直接按回车,则返回指定的默认值
     *
     * @param defaultValue 指定的默认字符串
     * @return 默认值或输入的字符
     */

    public static char readChar(char defaultValue) {
        String str = readKeyBoard(1, true);//要么是空串,要么是输入的字符串
        return (str.length() == 0 ? defaultValue : str.charAt(0));
    }
    public static char readChar() {
        String str = readKeyBoard(1, false);//要么是空串,要么是输入的字符串
        return str.charAt(0);
    }

    /**
     * 功能:读取键盘输入的整型,长度小于2位
     *
     * @parameter 整数
     */

    public static int readInt(int defaultValue) {
        int n;
        while (true) {
            String str = readKeyBoard(10, true);
            if (str.equals("")) {
                return defaultValue;
            }
            //异常处理
            try {
                n = Integer.parseInt(str);
                break;
            } catch (NumberFormatException e) {
                System.out.println(e);
            }
        }
        return n;
    }

    /**
     * 功能:读取键盘输入的指定长度的字符串
     *
     * @return 指定长度的字符串
     * @parameter limit 限制的长度
     */

    public static String readString(int limit) {
        return readKeyBoard(limit, false);
    }

    /**
     * 功能:读取键盘输入的指定长度的字符串或默认值,如果直接回车,返回默认的字符串
     *
     * @param limit        限制的长度
     * @param defaultValue 指定的默认值
     * @return 指定长度的字符串
     */

    public static String readString(int limit, String defaultValue) {
        String str = readKeyBoard(limit, true);
        return str.equals("") ? defaultValue : str;
    }

    /**
     * 功能:从键盘读取输入的选项,Y/N
     * 将小的功能封装到一个方法中
     *
     * @return Y/N
     */
    public static char readConfirmSelection() {
        System.out.println("请输入你的选择(Y/N),请小心选择:");
        char c;
        while (true) {//无限循环
            //在这里,将接受到字符,转成了大写字母
            //y=>Y n=>N
            String str = readKeyBoard(1, false).toUpperCase();
            c = str.charAt(0);
            if (c == 'Y' || c == 'N') {
                break;
            } else {
                System.out.println("选择错误,请重新输入:");
            }
        }
        return c;
    }

    /**
     * 功能:从键盘读取字符串
     *
     * @param flag  判断是否严格
     * @param limit 是否可以为空字符串
     * @return str 符合要求的字符串
     */

    public static String readKeyBoard(int limit, boolean flag) {
        String str;
        do {
            str = scanner.nextLine();
            if (str.length() == 0) {
                if (flag == false) {
                    while (true) {
                        System.out.println("请输入:");
                        str = scanner.nextLine();
                        if (str.length() != 0) {
                            break;
                        }
                    }
                } else
                    return "";
            }
            if (str.length() > limit){
                System.out.print("请输入长度不大于" + limit +"的字符串:");
            }
        }while (str.length() > limit);
    return str;
    }

}

 

标签:return,String,获取,limit,str,字符串,static,控制台,输入
From: https://www.cnblogs.com/zyshuaibi/p/17132330.html

相关文章

  • 微信网页授权获取用户信息主要代码
    两步实现微信网页授权,获取用户基本信息步骤一:​​​​步骤二:​​​​​​​​演示​​​​​​​​这样在cookie没有过期时,就可以不在需......
  • 获取图片颜色方法或者图片区域像素点颜色 初稿
             ......
  • Java中获取class对象
    1、为什么要获取class对象当我们要获取类的信息及方法,利用Java中的反射机制,便于我们更加灵活的编写代码,可以在程序运行时装配代码,还可以实现动态代理。反射机制允许程序在运......
  • 用Python做一个小说下载器,从获取数据到编写GUI界面
    对于广大书虫而言,没有小说看是最痛苦的,你身边有这样的人吗?今天咱们分享一个小说下载器代码,打包成exe后,发给你的小伙伴也能直接使用…思路流程什么是爬虫?......
  • 如何通过设备基站获取设备经纬度
    概述最近有一个客户咨询如何通过基站获取设备的经纬度,所以查了一下相关资料,分享给大家。基站是运营商(移动,联通,电信)的设备,这些设备的分配的使用是由运营商来管理的,但好在......
  • PHP获取下个月今天时间
    获取php下个月当前时间publicstaticfunctionfq_time($time=""){if(!$time)$time=time();$arr=getdate($time);//判断月份$year=$arr['year']......
  • Qt Embedded之二:Input 输入系统
    相对于没有视窗系统,鼠标、键盘、触摸板输入直接从evdev读取或者使用第三方的库实现比如libinput、tslib。这需要/dev/input/event*可以被用户读取。Eglfs和Linuxfb内部......
  • oracle获取树状结构数据
    语法:select*from表名where条件1startwith条件2connectby条件3;条件2:是根结点的限定语句,当然可以放宽限定条件,以取得多个根结点,实际就是多棵树。条件3:......
  • 省市县可以不用一级一级的输入
    2023年2月17日16:36:59原由,在要填写省市县的地方,往往是一个三级联动的插件,我就突然想到,为什么不能直接输入县名,然后直接定位省/市/县呢,现有的三级联动,要一......
  • C语言填空:从键盘输入一个十进制整数,输出其二进制数
    #include<stdio.h>//从键盘输入一个十进制整数,输出其二进制数main(){intx[10],n,i,j;【1】;scanf("%d",&n);while(【2】{【3】;......