java 编程

输入一个身份证号码(15位和18位)和一个年份,计算现在的年龄(忽略非法参数)实在没分了求大神解决下谢谢了输入:6106181990010200652011输出:21... 输入一个身份证号码(15位和18位)和一个年份,计算现在的年龄(忽略非法参数) 实在没分了 求大神解决下 谢谢了
输入:610618199001020065 2011
输出:21
展开
 我来答
岁月的帆扬
2014-03-06 · 超过24用户采纳过TA的回答
知道答主
回答量:54
采纳率:0%
帮助的人:46.8万
展开全部

我是以19来寻找的,毕竟现在人的出生大部分20 世纪的,当然楼主也能拓展!

import java.util.Scanner;

public class ShenFen {
 public static void main(String[] args) {
  Scanner input=new Scanner(System.in);
  Object o;
  boolean flag=true;
  System.out.print("请输入身份证号:");
  String s =input.next();
  char []temp=s.toCharArray();
  char []temp1 = new char[4];
  int s2=0;
  System.arraycopy(temp, s.indexOf("19"), temp1, 0, 4);
  String temp2="";
  for(char i:temp1){
   temp2+=i;
  }
  int s1=Integer.parseInt(temp2);
  while(flag){
   System.out.print("请输入一个年份:");
   if(input.hasNextInt()){
    s2=input.nextInt();
    flag=false;
   }else{
    System.out.println("输入错误,请重新输入");
    o=input.next();
    flag=true;
   }
  }
  System.out.println("年龄:"+(s2-s1));
  input.close();
 }
}
frostfish425
2014-03-06 · TA获得超过124个赞
知道小有建树答主
回答量:190
采纳率:0%
帮助的人:123万
展开全部
你把身份证的字符串当做是字符串数组,取 第6位 到 第9位 的那几个数字,然后组成一个 4位数的数字,最后用 2011 减一下就行了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式