/** * 将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; }
时间: 2024-10-16 03:14:07