Java 如何取身份证的后6位数字 如果最后一位是字母则略过字母取后六位数字
public class IDTest{
public static void main(String[] args) {
String id = "22010419730215443X";
System.out.println("Hello World!"+new IDTest().getId(id));
}
public String getId(String id){
Pattern p = Pattern.compile("[0-9]+[X|x]{1}");
Matcher m = p.matcher(id);
boolean b = m.matches();
if(b){
id = id.substring(id.length()-7,id.length()-1);
}else{
id = id.substring(id.length()-6);
}
return id;
}
}
这个还是去百度提问比较好,
[code="java"]
Pattern pattern = Pattern.compile("(\d{6})[a-zA-Z]?$");
Matcher matcher = pattern.matcher("439006199005140025A");
while(matcher.find()){
System.out.println(matcher.group(1));
}
[/code]
[code="java"]
String id = "35692319910426032a";
String lastWord = id.substring(id.length()-1);
String reg = "[a-zA-Z]";
if(lastWord.matches(reg)){
String s = id.substring(id.length()-7, id.length()-1);
System.out.println("略过字母:"+s);
}else{
System.out.println(id.substring(id.length()-6));
}
[/code]