A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© lxl962189096 中级黑马   /  2016-5-20 13:37  /  1491 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

package com.heima.regex;
public class Demo1_Regex {
        public static void main(String[] args) {
                System.out.println(checkQQ("012345"));
                System.out.println(checkQQ("a1b345"));
                System.out.println(checkQQ("123456"));
                System.out.println(checkQQ("1234567890987654321"));
               
                String regex = "[1-9]\\d{4,14}";
                System.out.println("2553868".matches(regex));
                System.out.println("012345".matches(regex));
                System.out.println("2553868abc".matches(regex));
        }
       
        /*
         * 需求:校验qq号码.
         * 1:要求必须是5-15位数字
         * 2:0不能开头
         * 3:必须都是数字
         * 校验qq
         * 1,明确返回值类型boolean
         * 2,明确参数列表String qq
         */
        public static boolean checkQQ(String qq) {
                boolean flag = true;                //如果校验qq不符合要求就把flag置为false,如果符合要求直接返回
               
                if(qq.length() >= 5 && qq.length() <= 15) {
                        if(!qq.startsWith("0")) {
                                char[] arr = qq.toCharArray();        //将字符串转换成字符数组
                                for (int i = 0; i < arr.length; i++) {
                                        char ch = arr[i];                        //记录每一个字符
                                        if(!(ch >= '0' && ch <= '9')) {
                                                flag = false;                        //不是数字
                                                break;
                                        }
                                }
                        }else {
                                flag = false;                                        //以0开头,不符合qq标准
                        }
                }else {
                        flag = false;                                                //长度不符合
                }
                return flag;
        }
}

2 个回复

倒序浏览
楼主,一起交流学习哈,,这是我对这道题,我自己的一个小想法
  1. import java.util.Scanner;
  2. import java.util.regex.Matcher;
  3. import java.util.regex.Pattern;

  4. /*
  5. * 需求:校验qq号码.
  6. * 1:要求必须是5-15位数字
  7. * 2:0不能开头
  8. * 3:必须都是数字
  9. * 校验qq
  10. * 1,明确返回值类型boolean
  11. * 2,明确参数列表String qq
  12. */
  13. public class CheckQQNumber {

  14.         public static void main(String[] args) {
  15.                 Scanner sc = new Scanner(System.in);
  16.                 System.out.println("请输入QQ号码:");

  17.                 // 对输入的QQ号码进行验证
  18.                 inputQQ(sc);
  19.         }

  20.         public static void inputQQ(Scanner sc) {
  21.                 while (sc.hasNext()) {
  22.                         String QQ = sc.next();
  23.                         if (checkQQ(QQ)) {
  24.                                 System.out.println("QQ号码输入正确");
  25.                                 return;
  26.                         } else {
  27.                                 System.out.println("QQ号码输入错误,请重新输入:");
  28.                                 continue;
  29.                         }

  30.                 }
  31.         }

  32.         public static boolean checkQQ(String QQ) {
  33.                 String regex = "^[1-9][0-9]{4,14}$";
  34.                 Pattern p = Pattern.compile(regex);
  35.                 Matcher m = p.matcher(QQ);
  36.                 boolean flag = m.matches();
  37.                 return flag;
  38.         }

  39. }
复制代码
回复 使用道具 举报
你这程序太厉害了 大神啊
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马