/**
* 根据身份证号获取性别
*
* @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位的更多相关文章

  1. java中身份证号15位转18位

    /** * 将15位转换为18位 * @param idCode 15位身份证号 * @return String 18位身份证号 */ public String toEighteen(String ...

  2. 身份证号码15位转18位 C#实现

    [身份证最后一位神秘X的由来]身份证中的“冷知识”1999年的今天,<国务院关于实行公民身份号码制度的决定>被发布,当年10月1日实施.为什么有的有X?这位数是根据前17位计算出的校验码. ...

  3. 做一个牛XX的身份证号验证类(支持15位和18位)

    原文:做一个牛XX的身份证号验证类(支持15位和18位) #region 是否合法的中国身份证号码 protected bool IsChineseID() { if (str.Length == 1 ...

  4. php 验证身份证有效性,根据国家标准GB 11643-1999 15位和18位通用

    //验证身份证是否有效 function validateIDCard($IDCard) { if (strlen($IDCard) == 18) { return check18IDCard($ID ...

  5. C# 身份证号码15位和18位验证

    /// <summary> /// 身份证 /// </summary> [Serializable] public class IDCard {     /// <su ...

  6. js从字符串中提取身份证号,连续18位数字

    <!DOCTYPE html> <html> <head> <title>提取身份证号</title> <meta charset=& ...

  7. 18位身份证验证--java实现,正则表达式

    简单的正则表达式: (1)preg_match("/^(\d{18,18}|\d{15,15}|\d{17,17}x)$/",$id_card)(2)preg_match(&quo ...

  8. Js完美验证15/18身份证,Js验证身份证,支持15/18位

    Js完美验证15/18身份证,Js验证身份证,支持15/18位 >>>>>>>>>>>>>>>>> ...

  9. js验证15位或18位身份证

    本篇文章是本人在网上搜集了一些验证,然后又个人进行一定修改的关于身份证的验证,欢迎修改指正..... function IdCardValidateRule(idCard) { var tip;    ...

随机推荐

  1. $.ajax()各方法详解(转)

    jquery中的ajax方法参数总是记不住,这里记录一下. 1.url: 要求为String类型的参数,(默认为当前页地址)发送请求的地址. 2.type: 要求为String类型的参数,请求方式(p ...

  2. 6.JAVA知识点归纳整理

    一.jdk初识与HelloWord: 二.java基础: 2.1 标识符_关键字_数据类型 2.2 数据类型转换 2.3 程序编写格式 2.4 运算符 2.5 分支与for循环 2.6 while_b ...

  3. OrCAD设置原理图页面大小

    1. 右键要修改的原理图文件 2. 选择适合的尺寸

  4. linux命令大全(转载)

    在搭建openstack时遇到问题,导致上网查询相关信息.找到一篇不错的文章,希望对大家有用.下附地址: http://blog.csdn.net/junbujianwpl/article/detai ...

  5. Less入门教程

    http://www.cnblogs.com/fsjohnhuang/p/4187675.html

  6. jmeter上传视频图片附件

    http上传附件一般用的Content-Type: multipart/form-data;文中是先通过fiddler抓取手机端的请求,然后通过jmeter模拟该请求,如果有接口文档,则可以跳过抓包这 ...

  7. C++学习012友元

    何为友元,我的理解,友元就是把另一个类当作是我的朋友,朋友之间,是可以访问一些私有的变量的. 所以,当我们将一个累声明为自己的友元类的时候,那么这个类就可以访问我们自己类中的某些私有变量等 当我把某个 ...

  8. Python 3基础教程32-正则

    本文介绍Python的正则,通过本文介绍和一个练习,对正则有一个基本了解就可以. # 正则表达式 ''' 正则表达式是有一些特殊字符组成,能够帮你找到一些符合一定规则的字符串 先来了解几个符号所代表的 ...

  9. Jmeter——小性能用例

    1.添加默认值,将代理服务器写入 2.添加HTTP请求头,将域名部分用变量形式写入:${__CSVRead(D:/number.txt,0)},这是为了查询不同页面,在D:/number.txt路径下 ...

  10. cocos2d-x的坐标和节点层级