判断身份证:要么是15位,要么是18位,最后⼀位可以为字母,并写程序提出其中的年月日。
思路:
- 我们可以⽤正则表达式来定义复杂的字符串格式,(\d{17}[0-9a-zA-Z]|\d{14}[0-9a-zA-Z])可以⽤来判断是否为合法的15位或18位身份证号码。
- 15位和18位的身份证号码都是从7位到第12位为身份证为⽇期类型。这样可以设计出更精确的正则模式,使身份证号的⽇期合法,这样我们的正则模式可以进⼀步将⽇期部分的正则修改为 [12][0-9]\\d{2}[01][0-9][123][0-9] ,当然可以更精确的设置⽇期。
- 使用jdk的java.util.Regex包中的Pattern和Matcher。
代码实现:
package com.dgut.test.demo7;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Test {
public static void main(String[] args) {
String[] strs = {
"445381199807129201",