小弟是个学JAVA的新人,在做一题关于身份证号码转换题目的时候碰到了些小问题,请各位高人帮帮忙吧.
先谢谢了!
具体代码是这样的:
class test1
{
public static void main(String arr[])
{
String oldid="";
oldid JOptionPane.showImput Dialog(null,"输入旧身份证号");
String newid=oldid.substring(0,6)+"19"+oldid.substring(6);
int a[]={2,4,8,5,10,9,7,3,6,1,2,4,8,5,10,9,7}
int sum=0;
for (int i=0;i<17;i++)
sum+=a[i]* int(newid.charAt(16-i))-(int)'0';
int r=sum%11;
string t="";
if (r==0)
t=1+"";
if(r==1)
t=0+"";
if (r==2)
t="x";
if(r>2)
t=(12-r)+"";
newid=newid+t;
System.out.println(newid);
}
}提示错误是:
第6 9 11 行有错误
希望各位高人可以帮忙一下!
先谢谢了!
具体代码是这样的:
class test1
{
public static void main(String arr[])
{
String oldid="";
oldid JOptionPane.showImput Dialog(null,"输入旧身份证号");
String newid=oldid.substring(0,6)+"19"+oldid.substring(6);
int a[]={2,4,8,5,10,9,7,3,6,1,2,4,8,5,10,9,7}
int sum=0;
for (int i=0;i<17;i++)
sum+=a[i]* int(newid.charAt(16-i))-(int)'0';
int r=sum%11;
string t="";
if (r==0)
t=1+"";
if(r==1)
t=0+"";
if (r==2)
t="x";
if(r>2)
t=(12-r)+"";
newid=newid+t;
System.out.println(newid);
}
}提示错误是:
第6 9 11 行有错误
希望各位高人可以帮忙一下!
int a[]={2,4,8,5,10,9,7,3,6,1,2,4,8,5,10,9,7}->int a[]={2,4,8,5,10,9,7,3,6,1,2,4,8,5,10,9,7};sum+=a[i]* int(newid.charAt(16-i))-(int)'0';->sum+=a[i]* (int)(newid.charAt(16-i))-(int)'0';
string t="";-> String t="";
class test1
{
public static void main(String arr[])
{
String oldid="";
oldid =JOptionPane.showInputDialog(null,"输入旧身份证号");
String newid=oldid.substring(0,6)+"19"+oldid.substring(6);
int a[]={2,4,8,5,10,9,7,3,6,1,2,4,8,5,10,9,7};
int sum=0;
for (int i=0;i<17;i++)
sum+=a[i]* (int)(newid.charAt(16-i))-(int)'0';
int r=sum%11;
String t="";
if (r==0)
t=1+"";
if(r==1)
t=0+"";
if (r==2)
t="x";
if(r>2)
t=(12-r)+"";
newid=newid+t;
System.out.println(newid);
}
}
int a[]={2,4,8,5,10,9,7,3,6,1,2,4,8,5,10,9,7};//加分号
string t="";//string 应为String
int是基础类型不是对象 可以用 它的包装器类型 Integer
for (int i=0;i<17;i++){
int s=new Integer(newid.charAt(16-i)).intValue();
sum+=a[i]* s-(int)'0';
}
还有就是要引入个类.
还有就是楼主的程序当输入身份证号位数不正确时,会有异常.自己看着改改吧.
具体的错误位置请参考 anhy(鎏) ( ) 的贴子
class test1
{
public static void main(String arr[])
{
String oldid="";
JOptionPane.showInputDialog(null,"输入旧身份证号"); //error
String newid=oldid.substring(0,6)+"19"+oldid.substring(6);
int a[]={2,4,8,5,10,9,7,3,6,1,2,4,8,5,10,9,7}; //error掉分号
int sum=0;
for (int i=0;i<17;i++)
sum+=a[i]* ((int)(newid.charAt(16-i))-(int)'0'); //error掉括号
int r=sum%11;
string t="";
if (r==0)
t=1+"";
if(r==1)
t=0+"";
if (r==2)
t="x";
if(r>2)
t=(12-r)+"";
newid=newid+t;
System.out.println(newid);
}
}