java+身份证区域代码 java身份证号码

JAVA写一个程序,要求输入身份证号获取所在地区代码也就是前六位,和出生年月。

import java.util.*;

创新互联专注为客户提供全方位的互联网综合服务,包含不限于网站制作、成都做网站、双牌网络推广、成都微信小程序、双牌网络营销、双牌企业策划、双牌品牌公关、搜索引擎seo、人物专访、企业宣传片、企业代运营等,从售前售中售后,我们都将竭诚为您服务,您的肯定,是我们最大的嘉奖;创新互联为所有大学生创业者提供双牌建站搭建服务,24小时服务热线:13518219792,官方网址:www.cdcxhl.com

public class Yugi{

public static void main(String[] args){

Scanner scan = new Scanner(System.in);

System.out.println("输入身份证号码: ");

String code = scan.nextLine().trim();

scan.close();

String reg = "^(.{6})(.{4})(.{2}).*$";

String a = code.replaceAll(reg, "$1");

String y = code.replaceAll(reg, "$2");

String m = code.replaceAll(reg, "$3");

System.out.println("所在地区代码:" + a);

System.out.println("出生年月: " + y + ", " + m);

}

}

Java-18位身份证号的正则表达式。帮忙拆一下代码。

^ 匹配字符串的开始

[1-9] 第1位:1-9

\d{5} 第2-6位:0-9

[1-9] 第7位:1-9

\d{3} 第8-10位:0-9

((0\d)|(1[0-2])):

第11-12位:(00-09)或(10-12)

(([0|1|2]\d)|3[0-1])

第13-14位:(00-29)或(30-31)

\d{3} 第15-17位:0-9

([0-9]|X)

第18位:0-9或X

$ 匹配字符串的结束

用java写一个方法,转入一个身份证号,判断该身份证末位是否合法

/**

* 功能:身份证的有效验证

*

* @param IDStr 身份证号

* @return 有效:返回"" 无效:返回String信息

* @throws NumberFormatException

* @throws ParseException

*/

public static String IDCardValidate(String IDStr) {

String errorInfo = "";// 记录错误信息

String[] ValCodeArr = { "1", "0", "x", "9", "8", "7", "6", "5", "4",

"3", "2" };

String[] Wi = { "7", "9", "10", "5", "8", "4", "2", "1", "6", "3", "7",

"9", "10", "5", "8", "4", "2" };

String Ai = "";

// ================ 号码的长度 15位或18位 ================

if (IDStr.length() != 15 IDStr.length() != 18) {

errorInfo = "身份证号码长度应该为15位或18位。";

return errorInfo;

}

// =======================(end)========================

// ================ 数字 除最后以为都为数字 ================

if (IDStr.length() == 18) {

Ai = IDStr.substring(0, 17);

} else if (IDStr.length() == 15) {

Ai = IDStr.substring(0, 6) + "19" + IDStr.substring(6, 15);

}

if (isNumeric(Ai) == false) {

errorInfo = "身份证15位号码都应为数字 ; 18位号码除最后一位外,都应为数字。";

return errorInfo;

}

// =======================(end)========================

// ================ 出生年月是否有效 ================

String strYear = Ai.substring(6, 10);// 年份

String strMonth = Ai.substring(10, 12);// 月份

String strDay = Ai.substring(12, 14);// 月份

if (isDataFormat(strYear + "-" + strMonth + "-" + strDay) == false) {

errorInfo = "身份证生日无效。";

return errorInfo;

}

GregorianCalendar gc = new GregorianCalendar();

SimpleDateFormat s = new SimpleDateFormat("yyyy-MM-dd");

try {

if ((gc.get(Calendar.YEAR) - Integer.parseInt(strYear)) 150

|| (gc.getTime().getTime() - s.parse(

strYear + "-" + strMonth + "-" + strDay).getTime()) 0) {

errorInfo = "身份证生日不在有效范围。";

return errorInfo;

}

} catch (NumberFormatException e) {

// TODO 自动生成的 catch 块

e.printStackTrace();

return errorInfo = "身份证生日无效";

} catch (ParseException e) {

// TODO 自动生成的 catch 块

e.printStackTrace();

return errorInfo = "身份证生日无效";

}

if (Integer.parseInt(strMonth) 12 || Integer.parseInt(strMonth) == 0) {

errorInfo = "身份证月份无效";

return errorInfo;

}

if (Integer.parseInt(strDay) 31 || Integer.parseInt(strDay) == 0) {

errorInfo = "身份证日期无效";

return errorInfo;

}

// =====================(end)=====================

// ================ 地区码时候有效 ================

Hashtable h = GetAreaCode();

if (h.get(Ai.substring(0, 2)) == null) {

errorInfo = "身份证地区编码错误。";

return errorInfo;

}

// ==============================================

// ================ 判断最后一位的值 ================

int TotalmulAiWi = 0;

for (int i = 0; i 17; i++) {

TotalmulAiWi = TotalmulAiWi

+ Integer.parseInt(String.valueOf(Ai.charAt(i)))

* Integer.parseInt(Wi[i]);

}

int modValue = TotalmulAiWi % 11;

String strVerifyCode = ValCodeArr[modValue];

Ai = Ai + strVerifyCode;

if (IDStr.length() == 18) {

if (Ai.equals(IDStr) == false) {

errorInfo = "身份证无效,不是合法的身份证号码";

return errorInfo;

}

} else {

return "";

}

// =====================(end)=====================

return "";

}

身份证号码的地区代码分别是什么?

身份证号码的地区代码分别是:

1、东北地区: 辽宁省|210000,吉林省|220000,黑龙江省|230000,

2、华北地区:北京市|110000,天津市|120000,河北省|130000,山西省|140000,内蒙古自治区|150000,

3、华东地区: 上海市|310000,江苏省|320000,浙江省|330000,安徽省|340000,福建省|350000,江西省|360000,山东省|370000,

4、华南地区:广东省|440000,广西壮族自治区|450000,海南省|460000,

5、华中地区: 河南省|410000,湖北省|420000,湖南省|430000,

6、西北地区: 陕西省|610000,甘肃省|620000,青海省|630000,宁夏回族自治区|640000,新疆维吾尔自治区|650000,

7、西南地区: 四川省|510000,贵州省|520000,云南省|530000,西藏自治区|540000,重庆市|500000;

8、特别地区:台湾地区(886)|710000,香港特别行政区(852)|810000,澳门特别行政区(853)|820000。

扩展资料:

一、身份证号码是我国为每个公民从出生之日起编定的唯一的、终身不变的身份代码,也是证明持有人身份的唯一证件。

1、前1、2位数字表示:所在省份的代码;

2、第3、4位数字表示:所在城市的代码;

3、第5、6位数字表示:所在区县的代码;

4、第7~14位数字表示:出生年、月、日;

5、第15、16位数字表示:所在地的派出所的代码;

6、第17位数字表示性别:奇数表示男性,偶数表示女性;

7、第18位数字是校检码:用来检验身份证的正确性。校检码可以是0~10的数字,10用x表示。

二、一些人的尾号变成了X,这部分人在工作生活中,例如去银行存取钱、去汽车公司租赁汽车或者报名参加考试等等过程中,往往不被检验者理解,认为是假身份证,这样的误会给很多人的生活带来不便。X的意思其实是10,只不过用罗马数字代替了而已,如果不用罗马数字代替的话,那么身份证号将会变成19位数了。

参考资料:百度百科_居民身份证号码


新闻标题:java+身份证区域代码 java身份证号码
URL地址:http://ybzwz.com/article/dogosoi.html