出现异常 ????

234234orz 2011-03-30 06:28:50
import java.io.*;
import java.lang.*;
public class ConvertId {
public static void main(String args[]){
String IdNumber=""; int index;
System.out.println("please input ID number: ");

try{
BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
IdNumber = in.readLine();
index = Integer.parseInt(IdNumber);
}catch(IOException e) {}
catch(NumberFormatException e) {e.printStackTrace();}



if(IdNumber.length()==18) {
int s1 =Integer.parseInt(IdNumber.substring(6,10));
int s2 =Integer.parseInt(IdNumber.substring(10,12));
int s3 =Integer.parseInt(IdNumber.substring(12,14));
System.out.println("---------------------------------------------");
System.out.println("the birthday is "+s1+" year "+s2+" month "+s3+" day ");
int age =2011-s1;

System.out.println("the age is "+age);
if((int)IdNumber.charAt(17)%2==0)
System.out.println("the people ia a man");
else System.out.println("the people is a woman:");
}

if(IdNumber.length()==15){
String code;
int num = 0;
StringBuffer IdNumber1 = new StringBuffer(IdNumber);
IdNumber1.insert(6,"19");
//IdNumber = IdNumber.substring(0,5)+"19"+IdNumber.substring(6,14);
for(int i=17; i>=0; i--)
num+=(int)Math.pow(2,i-1)*(Integer.parseInt(IdNumber1.substring(i)));
num%=11;
switch(num) {
case 0: code = "1"; break;
case 1: code = "0"; break;
case 2: code = "X"; break;
default: code = 12-num+" "; break;
}
IdNumber1 =IdNumber1.append(code);
System.out.println(IdNumber1);
}
}
}
...全文
100 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
234234orz 2011-03-30
  • 打赏
  • 举报
回复
恩啊哈 Int ->double
JavaMan 2011-03-30
  • 打赏
  • 举报
回复
如果是解析身份证的话,不需要转换为Int啊!
wolf863292 2011-03-30
  • 打赏
  • 举报
回复
身份证用String吧,难道你不知道身份证中有可能出现“X”吗?
lost_guy_in_scut 2011-03-30
  • 打赏
  • 举报
回复
用Double吧~
234234orz 2011-03-30
  • 打赏
  • 举报
回复
类型 我改了 但是 还是报异常
Exception in thread "main" java.lang.NumberFormatException: For input string:

at java.lang.NumberFormatException.forInputString(NumberFormatExceptio
java:48)
at java.lang.Integer.parseInt(Integer.java:467)
at java.lang.Integer.parseInt(Integer.java:496)
at Test.main(Test.java:48)
求一点意见 新手~~~~~~~~
lost_guy_in_scut 2011-03-30
  • 打赏
  • 举报
回复
写错了 int的最大值(2^32-1)
你的需求要15位和18位~~
还是3楼说的对~呵呵~
234234orz 2011-03-30
  • 打赏
  • 举报
回复
Exception in thread "main" java.lang.NumberFormatException: For input string:

at java.lang.NumberFormatException.forInputString(NumberFormatExceptio
java:48)
at java.lang.Integer.parseInt(Integer.java:467)
at java.lang.Integer.parseInt(Integer.java:496)
at Test.main(Test.java:48)
234234orz 2011-03-30
  • 打赏
  • 举报
回复
改了 但是 还是有异常
lost_guy_in_scut 2011-03-30
  • 打赏
  • 举报
回复

try{
BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
IdNumber = in.readLine();
// System.out.println(IdNumber);
//因为你读取到的一行数据后面是有空格的
//parseInt 无法将空格转化为数字
index = Integer.parseInt(IdNumber.trim());
}catch(IOException e) {
e.printStackTrace();
System.out.println("exceiptin is "+e);
}


还有就是你的index明明没有用到~你定义它干嘛呢?
234234orz 2011-03-30
  • 打赏
  • 举报
回复
Exception in thread "main" java.lang.NumberFormatException: For input string:

at java.lang.NumberFormatException.forInputString(NumberFormatExceptio
java:48)
at java.lang.Integer.parseInt(Integer.java:467)
at java.lang.Integer.parseInt(Integer.java:496)
at Test.main(Test.java:48)
magong 2011-03-30
  • 打赏
  • 举报
回复
[Quote=引用楼主 liaq325 的回复:]
String IdNumber=""; int index;


index = Integer.parseInt(IdNumber);

[/Quote]
18位身份证号码对于int太大了,用long吧。上面两行代码这么改
String IdNumber=""; long index;

index = Long.parseLong(IdNumber);


zqfddqr 2011-03-30
  • 打赏
  • 举报
回复
报什么异常
《深入浅出 C++》视频教程详细、系统地介绍了 C++ 开发中方方面面的技术细节,整个课程涵盖知识点非常多,知识模块囊括 名字空间、类与对象、继承与多态、各类友元、异常机制、函数模板、类模板、STL容器操作等等,学完之后将拥有C++开发的非常坚实的功底。 注意:本套视频教程来源于线下的实体班级,因此视频中有少量场景对话和学生问答,对此比较介意的亲们谨慎购买。 本套视频教程不仅会讲清楚概念和相应知识点,而且会抽丝剥茧,讲清楚来龙去脉,站在编程语言设计者的角度讲清楚为什么会出现这样的语法,站得高才能看得远,而不仅仅纠缠于细碎的语法。既有登高望远的视角,又有俯身前行的实践,有别于市面上大多数流于表面的教程。下面是讲解迭代器的一节视频的截图: 每个知识点不仅仅会通过视频讲解清楚,并且会配以精心安排的实验和作业,用来保证学习过程中切实掌握核心技术和概念,通过实验来巩固,通过实验来检验,实验与作业的目的是发现问题,发现技术盲点,通过答疑和沟通夯实技术技能。注意:本套视频教程包含全套11套作业题,覆盖所有视频知识点,循序渐进,各个击破。下面是部分作业题目展示,每道题都有知识点说明,是检验学习效果的一大利器:常见问题:问:零基础可以学习吗?答:这门课程并非针对完全零基础的学员,学习这门课程需要对C语言有了一定了解的。问:遇到问题可以答疑吗?答:可以的,购买课程后可以联系到我,安排进入专门的QQ答疑群。不仅可以向老师提问,也可以跟其他同学讨论,结交兴趣相投的朋友。问:学完能做什么?答:C++是众多开发岗位的必备技能,也是进入面向对象编程领域的一门利器,可以胜任很多岗位的职业要求。尤其是对游戏开发、游戏引擎、算法、界面开发、系统开发等等,C++都是热门技术。

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧