java 身份证15位转18位
/**
* 根据身份证号获取性别
*
* @param pid
* 身份证号
* @return 性别 F为女M为男
*/
public static String getSexByPid(String pid)throws Exception{
if(pid!=null&&(pid.trim().length()== 15||pid.trim().length()==18)){
if(pid.trim().length()==15){
String pid18 = "";//pid15To18(pid);
if(Integer.parseInt(pid18.substring(16,17))%2==0){
return "女";
}else{
return "男";
}
}else{
if(Integer.parseInt(pid.substring(16,17))%2==0){
return "女";
}else{
return "男";
}
}
}else{
return null;
}
} /**
* 15位身份证 转18位
* lsp 2017年1月19日13:47:52
* @param fifteenIDCard
* @return
* @throws Exception
*/
public static String getEighteenIDCard(String fifteenIDCard) throws Exception {
if (fifteenIDCard != null && fifteenIDCard.length() == 15) {
StringBuilder sb = new StringBuilder();
sb.append(fifteenIDCard.substring(0, 6)).append("19").append(
fifteenIDCard.substring(6));
sb.append(getVerifyCode(sb.toString()));
return sb.toString();
} else {
throw new Exception("不是15位的身份证");
}
} /**
* 获取身份证的校验码
* lsp 2017年1月19日13:47:52
* @param idCardNumber
* @return
* @throws Exception
*/
public static char getVerifyCode(String idCardNumber) throws Exception {
if (idCardNumber == null || idCardNumber.length() < 17) {
throw new Exception("不合法的身份证号码");
}
char[] Ai = idCardNumber.toCharArray();
int[] Wi = { 7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2 };
char[] verifyCode = { '1', '0', 'X', '9', '8', '7', '6', '5', '4', '3',
'2' };
int S = 0;
int Y;
for (int i = 0; i < Wi.length; i++) {
S += (Ai[i] - '0') * Wi[i];
}
Y = S % 11;
return verifyCode[Y];
} public static void main(String[] args) throws Exception {
System.out.println(getEighteenIDCard("330324360802695"));
}
java 身份证15位转18位的更多相关文章
- java中身份证号15位转18位
/** * 将15位转换为18位 * @param idCode 15位身份证号 * @return String 18位身份证号 */ public String toEighteen(String ...
- 身份证号码15位转18位 C#实现
[身份证最后一位神秘X的由来]身份证中的“冷知识”1999年的今天,<国务院关于实行公民身份号码制度的决定>被发布,当年10月1日实施.为什么有的有X?这位数是根据前17位计算出的校验码. ...
- 做一个牛XX的身份证号验证类(支持15位和18位)
原文:做一个牛XX的身份证号验证类(支持15位和18位) #region 是否合法的中国身份证号码 protected bool IsChineseID() { if (str.Length == 1 ...
- php 验证身份证有效性,根据国家标准GB 11643-1999 15位和18位通用
//验证身份证是否有效 function validateIDCard($IDCard) { if (strlen($IDCard) == 18) { return check18IDCard($ID ...
- C# 身份证号码15位和18位验证
/// <summary> /// 身份证 /// </summary> [Serializable] public class IDCard { /// <su ...
- js从字符串中提取身份证号,连续18位数字
<!DOCTYPE html> <html> <head> <title>提取身份证号</title> <meta charset=& ...
- 18位身份证验证--java实现,正则表达式
简单的正则表达式: (1)preg_match("/^(\d{18,18}|\d{15,15}|\d{17,17}x)$/",$id_card)(2)preg_match(&quo ...
- Js完美验证15/18身份证,Js验证身份证,支持15/18位
Js完美验证15/18身份证,Js验证身份证,支持15/18位 >>>>>>>>>>>>>>>>> ...
- js验证15位或18位身份证
本篇文章是本人在网上搜集了一些验证,然后又个人进行一定修改的关于身份证的验证,欢迎修改指正..... function IdCardValidateRule(idCard) { var tip; ...
随机推荐
- RedHat6.4 安装yum源
主要参考: http://blog.itpub.net/25313300/viewspace-708509/ http://blog.sina.com.cn/s/blog_50f908410101ct ...
- c/c++ 结构体传参问题
c/c++的结构体传参可以有三种方式: 1.传递结构体变量,值传递 2.传递结构体指针,地址传递 3.传递结构体成员,可是值传递也可以是地址传递 根据代码示例: 1.传递结构体变量 #include& ...
- Cadence17.2下载ALTERA的FPGA封装库
1. 在Cadence的安装目录里面找了下,发现都没有Altera的FPGA型号的函数库,下面的虽然是ALTERA,但是没有FPGA的器件封装 2. 去intel的官网看能不能下载到,INTEL网址, ...
- 第十篇 Python的字符串格式化
字符串格式化:就是按照你的意愿做一个拼接的过程. 1. 字符串格式化的第一种方式:百分号方式 百分号的方式相对来说比较老,而format方式则是比较先进的方式,企图替换古老的方式,目前两者并存. %[ ...
- golang交叉编译笔记
GOOS:目标平台的操作系统(darwin.freebsd.linux.windows) GOARCH:目标平台的体系架构(386.amd64.arm) Mac 下编译 Linux 和 Windows ...
- 企业级Nginx Web服务优化实战
web优化一览总结表 优化类型 优化说明 优化方法 安全优化 隐藏nginx版本信息优化 修改nginx配置文件实现优化 server_tokens off: 修改nginx版本信息优化 修改ngin ...
- ASP.NET 概述
https://msdn.microsoft.com/zh-cn/library/4w3ex9c2(VS.100).aspx ASP.NET 概述 更新:2007 年 11 月 ASP.NET 是一个 ...
- JQuery JTable根据某行的某个值来设置行的背景颜色
目录 描述 处理方法 参考 描述 某个表的数据是用JQuery的JTable插件进行展示的.现在需求是:当表中的master字段为true时,就将对应的整行的背景颜色设置为浅蓝色. 处理方法 在fie ...
- Web-Servlet处理表单
- 【EasyNetQ】- 订阅
EasyNetQ订阅者订阅消息类型(消息类的.NET类型).一旦通过调用Subscribe方法设置了对类型的订阅,就会在RabbitMQ代理上创建一个持久队列,并且该类型的任何消息都将被放置在队列中. ...