求:18位身份证号码校验的源程序 我这里有一个把15位身份证号码补成18位的函数如果要,可以发信给[email protected] 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 《程序员》java增刊,有一篇将JUnit的文章,测试程序就是18位身份证号码校验的程序 /** * 修补15位个人身份证号码为18位 * @param personIDCode * @return */ public static String fixPersonIDCode(String personIDCode) { String retIDCode = ""; if ( personIDCode == null || personIDCode.trim().length() != 15 ) { return personIDCode; } String id17 = personIDCode.substring(0,6) + "19" + personIDCode.substring(6,15); //15位身份证补'19' char[] code = {'1','0','X','9','8','7','6','5','4','3','2'}; //11个 int[] factor={0, 2,4,8, 5,10,9,7, 3,6,1,2, 4,8,5,10, 9,7}; //18个; int[] idcd = new int[18]; int i; int j; int sum; int remainder; for (i=1; i<18; i++) { j = 17 - i ; idcd[i] = Integer.parseInt(id17.substring(j, j+1)); } sum = 0; for (i=1; i<18; i++) { sum = sum + idcd[i] * factor[i]; } remainder = sum%11; String lastCheckBit = String.valueOf(code[ remainder ]); return id17 + lastCheckBit; } 求助指导JAVA程序 一道关于Servlet的面试题 求 struts2+ibati分页 代码 抢分啦----线程问题(在线等) 关于Javamail中接收方用户认证的问题 跪求一段APPLET程序 要点击按钮能够画正玄曲线 (作图也行)要使用EVENT哦 谢谢 简单操作就有分,早参加早得分!!!快快快!!!!!! 一个文件读写的问题 string和stringbuffer有什么区别? 如何在一页纸上分次打印? [100分]哪位大侠有jsp/servlet/javabean的编程规范? Exception 报的错如何改使它不再出现???
* 修补15位个人身份证号码为18位
* @param personIDCode
* @return
*/
public static String fixPersonIDCode(String personIDCode)
{
String retIDCode = "";
if ( personIDCode == null || personIDCode.trim().length() != 15 ) {
return personIDCode;
}
String id17 = personIDCode.substring(0,6) + "19" + personIDCode.substring(6,15); //15位身份证补'19' char[] code = {'1','0','X','9','8','7','6','5','4','3','2'}; //11个
int[] factor={0, 2,4,8, 5,10,9,7, 3,6,1,2, 4,8,5,10, 9,7}; //18个;
int[] idcd = new int[18];
int i;
int j;
int sum;
int remainder; for (i=1; i<18; i++)
{
j = 17 - i ;
idcd[i] = Integer.parseInt(id17.substring(j, j+1));
} sum = 0;
for (i=1; i<18; i++)
{
sum = sum + idcd[i] * factor[i];
}
remainder = sum%11;
String lastCheckBit = String.valueOf(code[ remainder ]);
return id17 + lastCheckBit;
}