Java学习总结--023正则表达式的判断校验功能

本文总结了Java中使用String类的matches方法进行正则表达式匹配,用于校验qq号码、判断手机号码合规性以及验证用户邮箱的正确性。

String类的功能:public boolean matches(String regex)

1.校验qq号码

public class MyTest {
    public static void main(String[] args) {
        //正则表达式:正确规则的表达式,他是一个独立的语法,很多语言都支持,他的作用就是用来校验,一段数据符不符合我定义的规则
        //案例演示
        //需求:校验qq号码.
        //1:要求必须是5 - 15 位数字
        //2:0 不能开头

        //非正则表达式实现
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入你的QQ号码");
        String qqNum = sc.nextLine();
       // boolean b = checkQQNum(qqNum);
        boolean b = checkQQNum2(qqNum);
        if (b) {
            System.out.println("QQ号码规则正确");
        } else {
            System.out.println("QQ号码规则有误");
        }
    }
    private static boolean checkQQNum2(String qqNum) {
        //定义一个正则表达式
        String regx="[1-9][0-9]{4,14}";
        boolean matches = qqNum.matches(regx);
        return matches;
    }
    private static boolean checkQQNum(String qqNum) {
        //定义一个标记
        boolean flag = false;
        //校验位数
        if (qqNum.length() >= 5 && qqNum.length() <= 15 && !qqNum.startsWith("0")) {
            //下来校验每个位数是否是数字
            for (int i = 0; i < qqNum.length(); i++) {
                char ch = qqNum.charAt(i);
                if (ch >= '0' && ch <= '9') {
                    flag = true;
                } else {
                    flag = false;
                    break;//终止循环
                }
            }
        } else {
            flag = false;
        }
        return flag;
    }
}

2.判断手机号码是否满足规则

public class MyTest2 {
    public static void main(String[] args) {
        //手机号码,长度11位  以 1开头
        //手机号码每一位都是数字
        // 第二位 3 5 6 7 8 9  13  9 9887 0987
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入你的手机号码");
        String phoneNum = sc.nextLine();
        boolean b = checkPhoneNum(phoneNum);
        System.out.println(b);
        if (b) {
            System.out.println("规则正确");
        } else {
            System.out.println("规则不正确");
        }
    }
    private static boolean checkPhoneNum(String phoneNum) {
        //定义标记
        boolean flag = false;
        if (phoneNum.length() == 11 & (phoneNum.startsWith("13") || phoneNum.startsWith("15") || phoneNum.startsWith("16") || phoneNum.startsWith("17") || phoneNum.startsWith("18") || phoneNum.startsWith("19"))) {
            for (int i = 2; i < phoneNum.length(); i++) {
                char ch = phoneNum.charAt(i);
                //static boolean isDigit ( char ch)
                //确定指定字符是否为数字。
                if (Character.isDigit(ch)) {
                    flag = true;
                } else {
                    flag = false;
                    break;
                }
            }
        } else {
            flag = false;
        }
        return flag;
    }
}

3.校验用户邮箱是否满足要求

public class MyTest2 {
    public static void main(String[] args) {
        //正则表达式的判断功能
        //String类的功能:public boolean matches (String regex)

        //需求:校验邮箱
        /*
         * 284309510@qq.com
         * xibukaiyuan@163.com
         *  xibukaiyuan@sina.cn
         *   xibukaiyuan@sina.net
         *   xibukaiyuan@sina.org
         * */
        // 6 ~18 个字符,可使用字母、数字、下划线,需以字母开头
        String emailRegx = "[a-zA-Z]\\w{5,17}@[1-9a-z]{3,16}\\.(com|cn|net|org)";
        boolean matches = "284309510@qq.com".matches(emailRegx);
        System.out.println(matches);
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值