哈哈,我说呢,怎么可能会编码出错呢

可惜不是你,陪我到最后
哈哈,我知道
以前15位的老身份证号中,最后一位是男女的位数,是偶数则是女的,是奇数则为男的
而现在新的18位身份证号中,就变成了倒数第二位是性别分辨号了,同样,偶数是女的,奇数是男的
应该是这样的.我是18位,倒数第2位是偶数,最后一位是X .
应该是这样的.我是18位,倒数第2位是偶数,最后一位是X .
呵呵,和我一样,我最后一位也是X
15位转为18位是有个算法!!
以前学习JAVA时做的算身份证的例子的代码 写的不好!!
//算法
string str = "";//str是接收输入的15位号码
int num[] = new int[17];//定义数组
string t = "";
int v_list[]={2,4,8,5,10,9,7,3,6,1,2,4,8,5,10,9,7};
int n=0;
int r = 0;
str=str.substring(0,6)+"19"+str.substring(6);
for (int i = 0; i<17; i++)
{
num[i]=(int)str.charAt(i)-48;
n+=num[i]*v_list[16-i];
}
r=n%11;
switch(r)
{
case 0: t="1"; break;
case 1: t="0"; break;
case 2: t="x"; break;
default : t=12 - r + "";
}
str=str+t;
System.out.println (str);
就可以了