Java随机生成18位身份证号
package com.ihome.data; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; import java.util.Random; public class CertNoUtil { // 18位身份证号码各位的含义: // 1-2位省、自治区、直辖市代码; // 3-4位地级市、盟、自治州代码; // 5-6位县、县级市、区代码; // 7-14位出生年月日,比如19670401代表1967年4月1日; // 15-17位为顺序号,其中17位(倒数第二位)男为单数,女为双数; // 18位为校验码,0-9和X。 // 作为尾号的校验码,是由把前十七位数字带入统一的公式计算出来的, // 计算的结果是0-10,如果某人的尾号是0-9,都不会出现X,但如果尾号是10,那么就得用X来代替, // 因为如果用10做尾号,那么此人的身份证就变成了19位。X是罗马数字的10,用X来代替10 public static String getRandomID() { String id = ""; // 随机生成省、自治区、直辖市代码 1-2 String provinces[] = { "11", "12", "13", "14", "15", "21", "22", "23", "31", "32", "33", "34", "35", "36", "37", "41", "42", "43", "44", "45", "46", "50", "51", "52", "53", "54", "61", "62", "63", "64", "65", "71", "81", "82" }; String province = provinces[new Random().nextInt(provinces.length - 1)]; // 随机生成地级市、盟、自治州代码 3-4 String citys[] = { "01", "02", "03", "04", "05", "06", "07", "08", "09", "10", "21", "22", "23", "24", "25", "26", "27", "28" }; String city = citys[new Random().nextInt(citys.length - 1)]; // 随机生成县、县级市、区代码 5-6 String countys[] = { "01", "02", "03", "04", "05", "06", "07", "08", "09", "10", "21", "22", "23", "24", "25", "26", "27", "28", "29", "30", "31", "32", "33", "34", "35", "36", "37", "38" }; String county = countys[new Random().nextInt(countys.length - 1)]; // 随机生成出生年月 7-14 SimpleDateFormat dft = new SimpleDateFormat("yyyyMMdd"); Date beginDate = new Date(); Calendar date = Calendar.getInstance(); date.setTime(beginDate); date.set(Calendar.DATE, date.get(Calendar.DATE) - new Random().nextInt(365 * 100)); String birth = dft.format(date.getTime()); // 随机生成顺序号 15-17 String no = new Random().nextInt(999) + ""; // 随机生成校验码 18 String checks[] = { "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "X" }; String check = checks[new Random().nextInt(checks.length - 1)]; // 拼接身份证号码 id = province + city + county + birth + no + check; return id; } }
Java随机生成18位身份证号的更多相关文章
- java 随机生成4位随机数
java 随机生成4位的随机数测试类 @org.junit.Testpublic void testRandom(){ String msg="您的注册码为%s,谢谢注册!"; S ...
- java随机生成6位随机数 5位随机数 4位随机数
随机数,应用会相当广,验证数,订单号,流水号拼接. 下面是java随机数生成语句: 生成6位随机数(不会是5位或者7位,仅只有6位): System.+)*)); 同理,生成5位随机数: System ...
- java 随机生成6位短信验证码
生成6位随机数字其实很简单,只需一行代码,具体如下: String verifyCode = String.valueOf(new Random().nextInt(899999) + 100000) ...
- 中国居民18位身份证号验证方法,Java算法实现
public static boolean validate18Idcard(String idcard){ if(idcard == null ) { return false; } if(idca ...
- java实现的18位身份证格式验证算法
公民身份号码是特征组合码,由十七位数字本体码和一位数字校验码组成.排列顺序从左至右依次为:六位数字地址码,八位数字出生日期码,三位数字顺序码和一位数字校验码.1.地址码表示编码对象常住户口所在县(市. ...
- java 随机生成11位 组合
public static String generate8RateUuid() { String[] chars = new String[] { "a", & ...
- PHP实现15位身份证号转18位
PHP实现15位身份证号转18位 参考博客: 作者:selfimpr626 来源:CSDN (根据身份证号计算年龄,15位身份证号码转18位) 原文:https://blog.csdn.net/wei ...
- php验证18位身份证,准到必须输入正确的身份证号,
/** * 验证18位身份证(计算方式在百度百科有) * @param string $id 身份证 * return boolean */ function check_identity($id=' ...
- Java实现18位身份证校验代码
import java.util.Scanner; /** * 18位身份证校验 * @author [J.H] * */ public class Test { // 身份证校验 public st ...
随机推荐
- Swift3.0P1 语法指南——继承
原档:https://developer.apple.com/library/prerelease/ios/documentation/Swift/Conceptual/Swift_Programmi ...
- 转:入门Webpack,看这篇就够了
写在前面的话 阅读本文之前,先看下面这个webpack的配置文件,如果每一项你都懂,那本文能带给你的收获也许就比较有限,你可以快速浏览或直接跳过:如果你和十天前的我一样,对很多选项存在着疑惑,那花一段 ...
- 2>&1
经常关注linux脚本的人,一定看到过 2>&1 这样的用法,最初一定不明白其中的含义以及为什么是这样的一种组合.昨天偶然间再次看到了这个 2>&1 的写法,遂下决心搞明白 ...
- PCA、ZCA白化
白化是一种重要的预处理过程,其目的就是降低输入数据的冗余性,使得经过白化处理的输入数据具有如下性质:(i)特征之间相关性较低:(ii)所有特征具有相同的方差. 白化又分为PCA白化和ZCA白化,在数据 ...
- python之路二十
一, $.ajax,这个是JQuery对ajax封装的最基础步,通过使用这个函数可以完成异步通讯的所有功能.也就是说什么情况下我们都可以通过此方法进行异步刷新的操作.但是它的参数较多,有的时候可能会麻 ...
- 3D 素材路径
https://3dwarehouse.sketchup.com/user.html?id=1058361951245355501624136&nav=likedcollections
- FreeCodeCamp心得
<img> <input> tags are self-closing. So that there is only one tag without a slash i ...
- Android studio安装
1.首先上甲骨文公司的官方网站下载JDK的安装包,根据自己电脑的操作系统选择正确的版本下载.不知道下载地址的同学可以百度一下很快就能搜到.下载还的安装包如下图所示. 2.点击下载好的JDK安装程序,百 ...
- pip install Error - ReadTimeoutError: HTTPSConnectionPool
pip install Error OSX 终端更新pip出错 sudo pip install --upgrade pip : 1.ReadTimeoutError: HTTPSConnection ...
- Android安全攻防战,反编译与混淆技术完全解析(下)
在上一篇文章当中,我们学习了Android程序反编译方面的知识,包括反编译代码.反编译资源.以及重新打包等内容.通过这些内容我们也能看出来,其实我们的程序并没有那么的安全.可能资源被反编译影响还不是很 ...