码迷,mamicode.com
首页 > 编程语言 > 详细

java中身份证号15位转18位

时间:2015-03-12 15:03:01      阅读:154      评论:0      收藏:0      [点我收藏+]

标签:

/**
 * 将15位转换为18位
 * @param idCode 15位身份证号
 * @return String 18位身份证号
 */
public String toEighteen(String idCode) {
     
    idCode = idCode.substring(0, 6) + "19" + idCode.substring(6);//加入年份,变成17位
     
    //计算校验位   begin
    char[] Ai = idCode.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;
    //校验位计算结果verifyCode[Y] end
     
    idCode += verifyCode[Y];
    return idCode;
}

 

java中身份证号15位转18位

标签:

原文地址:http://www.cnblogs.com/lbhqq/p/4332246.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!