如果只要判斷有非法的字符(除0-9和Xx外)可用正則表達(dá)式publicstaticvoidmain(String[]args){//TODOcodeapplicationlogichereStrings="2142213weqrwe32";StringregEx="[^0-9Xx]";Patternpat=Pattern.compile(regEx);Matchermat=pat.matcher(s);booleanrs=mat.find();if(rs){System.out.print("有非法字符");}另外,校驗(yàn)身份證號碼有專門程序的,可直接校驗(yàn)身份證號是否正確,在自己在網(wǎng)上找下
成都創(chuàng)新互聯(lián)從2013年創(chuàng)立,是專業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項(xiàng)目網(wǎng)站制作、成都網(wǎng)站制作網(wǎng)站策劃,項(xiàng)目實(shí)施與項(xiàng)目整合能力。我們以讓每一個夢想脫穎而出為使命,1280元尉犁做網(wǎng)站,已為上家服務(wù),為尉犁各地企業(yè)和個人服務(wù),聯(lián)系電話:13518219792
18為身份證號碼的第17位數(shù)字表示性別:奇數(shù)表示男性,偶數(shù)表示女性
所有代碼中,只要截取出第17位的數(shù)字出來就可以判斷性別,如:
String sex;
// 判斷性別
if (Integer.parseInt(CardCode.substring(16).substring(0, 1)) % 2 == 0) {
sex = "女";
} else {
sex = "男";
}
import?java.util.*;
public?class??test{
public?static?void?main(String[]?args)?
{
Scanner?in=new?Scanner(System.in);
System.out.println("請輸入18位的身份號碼:");
String?s="^[0-9]{17}([0-9]|x)";//正則表達(dá)式
String?str=in.next();
while(!str.matches(s)){//用mathes方法匹配正則表達(dá)式,判斷是否合法
System.out.println("輸入錯誤,請重新輸入:");
str=in.next();
}
System.out.println("生日:"+str.substring(6,10)+"年"+str.substring(10,12)+"月"+str.substring(12,14)+"日");
System.out.println(Integer.parseInt(str.substring(14,15))%2==0?"女":"男");
}
}