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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© hadexs 中级黑马   /  2013-7-3 16:19  /  1307 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 杜光 于 2013-7-4 10:30 编辑

1.判断身份证:要么是15位,要么是18位,最后一位可以为字母,并写程序提出其中的年月日。

评分

参与人数 1黑马币 +5 收起 理由
杜光 + 5 每天提问并回答问题,是对知识的复习和积累.

查看全部评分

3 个回复

倒序浏览
\\d{14,17}\\w 生日用substring取6到12就行了
回复 举报
  1. import java.util.regex.Matcher;

  2. import java.util.regex.Pattern;



  3. public class RegexTest {



  4.       /**

  5.        * @param args

  6.        */

  7.       public static void main(String[] args) {

  8.             

  9.             // 测试是否为合法的身份证号码

  10.             String[] strs = { "130681198712092019", "13068119871209201x",

  11.                         "13068119871209201", "123456789012345", "12345678901234x",

  12.                         "1234567890123" };

  13.             Pattern p1 = Pattern.compile("(\\d{17}[0-9a-zA-Z]|\\d{14}[0-9a-zA-Z])");

  14.             for (int i = 0; i < strs.length; i++) {

  15.                   Matcher matcher = p1.matcher(strs[i]);

  16.                   System.out.println(strs[i] + ":" + matcher.matches());

  17.             }



  18.             Pattern p2 = Pattern.compile("\\d{6}(\\d{8}).*"); // 用于提取出生日字符串

  19.             Pattern p3 = Pattern.compile("(\\d{4})(\\d{2})(\\d{2})");// 用于将生日字符串进行分解为年月日

  20.             for (int i = 0; i < strs.length; i++) {

  21.                   Matcher matcher = p2.matcher(strs[i]);

  22.                   boolean b = matcher.find();

  23.                   if (b) {

  24.                         String s = matcher.group(1);

  25.                         Matcher matcher2 = p3.matcher(s);

  26.                         if (matcher2.find()) {

  27.                               System.out.println("生日为" + matcher2.group(1) + "年"

  28.                                                  + matcher2.group(2) + "月"

  29.                                             + matcher2.group(3) + "日");

  30.                         }

  31.                   }

  32.             }

  33.       }

  34. }

复制代码

评分

参与人数 1技术分 +1 收起 理由
杨兴庭 + 1 赞一个!

查看全部评分

回复 举报
楼主你好  如果帖子的问题已经解决,请把帖子的类型改为“已解决”。
回复 举报
您需要登录后才可以回帖 登录 | 加入黑马