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