java电话本项目(二:内部完善)

使用java搭建一个简单的电话本小项目

实现验证类的方法

对 数据校验类TelNoteRegex 内的菜单项的验证

对输入的数字进行判断,定义一个通用的方法

    /**
     * 对菜单输入的选项进行验证
     */
    public int menuItemValidate (int min, int max ){
   
        //定义验证菜单项的正则表达式
        String regex = "[1-9]{1}";
        //创建键盘输入对象
        Scanner scanner = new Scanner(System.in);
        //不知道需要输入多少次才可以输入正确,所以使用一个死循环去判断
        while (true){
   
            System.out.println("提示:请输入正确的数字,最小是:"+min+"\t"+"最大是:"+max);
            String input = scanner.nextLine();
            if (input.matches(regex)){
   
                //进入if说明用户输入的内容是合法的
                //将输入的内容从String类型转为int类型
                int inputNum = Integer.parseInt(input);
                if (inputNum>=min && inputNum<=max){
   
                    return inputNum;
                }else{
   
                    System.out.println("您输入的菜单项不符,请您重新输入...");
                }
            }else{
   
                //输入内容不合法,给予提示
                System.out.println("抱歉,您输入的内容不符合规定,请您重新输入...");
            }
        }
    }

对姓名的验证

    /**
     * 对用户输入姓名的验证
     * 字母可以是大写或者小写 长度为1-10之间的
     */
    public String nameValidate (){
   
        //验证姓名的正则表达式
        String regex = "[a-zA-Z]{1,10}";
        //创建Scanner对象
        Scanner scanner = new Scanner(System.in);
        while (true){
   
            System.out.println("请输入姓名,格式为:1-10之间的大写或者小写的字母");
            String input = scanner.nextLine();
            if (input.matches(regex)){
   
                return input;
            }else{
   
                System.out.println("您当前输入的姓名有误,请您重新输入");
            }
        }
    }

对年龄的验证

 /**
     * 对用户输入年龄的验证
     * 年龄的格式要求:10-99之间的
     */
    public String ageValidate (){
   
        //对年龄校验的正则表达式
        String regex = "[1-9]{1}[0-9]{1}";
        //创建键盘输入对象
        Scanner scanner = new Scanner(System.in);
        while (true) {
   
            System.out.println("请输入年龄:格式为10-99之间");
            String input = scanner.nextLine();
            if (input.matches(regex)){
   
                return input;
            }else{
   
                System.out.println("您输入的年龄格式有误,请您重新输入");
            }
        }
    }

对性别的验证

/**
     * 对用户输入性别的验证
     * 性别的输入要求:男(m或M)女(f或F)
     * @return
     */
    public String sexValidate (){
   
        String regex = "[m|M|f|F]{1}";
        Scanner scanner = new Scanner(System.in);
        while (true){
   
            System.out.println("请输入性别:格式为 男(m或M)女(f或F)");
            String input = scanner.nextLine();
            if (input.matches(regex)){
   
                return input;
            }else {
   
                System.out.println("输入性别格式有误,请您重新输入");
            }
        }
    }

对电话号码的验证

/**
     *  对用户输入电话号码的验证
     *  电话号码要求:允许带有区号的座机号,允许手机号
     */
    public String telNumValidate() {
   
        //对电话号码验证的正则表达式  \d){3,4}-\d{7,8}是座机号   [1]{1}\d{10}是手机号
        String regex = "(\\d{3,4}-\\d{7,8})|([1]{1}\\d{10})";
        Scanner scanner = new Scanner(System.in);
        while (true){
   
            System.out.println("请输入电话号码,座机号和手机号均可");
            String input = scanner.nextLine();
            if (input.matches(regex)){
   
                return input;
            }else{
   
                System.out.println("输入的电话号码有误,请您重新输入");
            }
        }
    }

对地址的验证

/**
     *  对用户输入地址的验证
     *  地址格式要求:字母或者数字,长度1,50
     */
    public String addressValidate() {
   
        //对地址验证的正则表达式
        String regex = "\\w{1,50}";
        Scanner scanner = new Scanner(System.in);
        while (true){
   
            System.out.println("请输入地址:格式为字母或者数字长度为1到50");
            String input = scanner.nextLine();
            if (input.matches(regex)){
   
                return input;
            }else {
   
                System.out.println("您输入的地址有误,请您重新输入");
            }
        }
    }

至此,我们对验证类内的方法定义完毕,可以进行一个简单的测试
在TelNoteRegex类内调用main方法进行测试:

    public static void main(String[] args) {
   
         TelNoteRegex regex = new TelNoteRegex();
        //测试一下当前对于菜单项验证的方法
        int menuItem = regex.menuItemValidate(1,6);
        System.out.println(menuItem);
        
        String name = regex.nameValidate();
        System.out.println(name);
    }

在这里插入图片描述
请自行验证其他方法的是否可行

实现App类的方法

实现start方法

    //控制主菜单
    public void start(){
   
        //实例化菜单类
        Menu menu = new Menu();
   
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值