哈哈,我说呢,怎么可能会编码出错呢
可惜不是你,陪我到最后
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);
就可以了