[java基础] 正则表达式入门练习--校验qq号

要解决的问题

举例:校验qq号
1:要求必须是5-15位数字
2:0不能开头
1:qq号码怎么来的?键盘录入
2:定义一个方法对qq号码进行检测

解决代码

import java.util.Scanner;

/*
//判断功能语句:public boolean maches(String regex)
举例:校验qq号
    1:要求必须是5-15位数字
    2:0不能开头
1:qq号码怎么来的?键盘录入
2:定义一个方法对qq号码进行检测
*/
public class RegexDemo{
     
    public static void main(String[] args){
     
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入qq号码: ");
        String qq = sc.nextLine();
        //boolean b = checkQQ(qq);
        boolean b = checkQQ2(qq);
        System.out.println(b);
    }

    //正则表达式的写法
    public static boolean checkQQ2(String qq){
     
        //正则表达式
        //意思是第一位时1-9.第二位是0-9,循环出现4-14次,至多14次
        String regex = "[1-9][0-9]{4,14}";
        return qq.matches(regex);
    }
    //没有正则表达式时的普通做法
    private static boolean checkQQ(String qq){
     
        if(qq.length()>=5 && qq.length()<=15){
     //检测是否是5-15位字符
            boolean b = qq.startsWith("0");
            if(b){
     
                //如果以0开头的话,返回false
                return false;
            }
            //将字符串转换成字符数组
            char[] charArray = qq.toCharArray();
            //循环遍历每个字符,判断是否位数字,如果任一字符不为数字,则返回false
            for (int i = 0;i <charArray.length;i++){
     
                char ch =charArray[i];
                boolean digit = Character.isDigit(ch);
                if(!digit){
     
                    return false;
                }
            }
        }
        else{
     
            //如果不满足长度,则返回false
            return false;
        }
        return true;
    }
    

}

执行结果

[java基础] 正则表达式入门练习--校验qq号_第1张图片

你可能感兴趣的:(Java)