A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 即墨 中级黑马   /  2016-5-24 23:10  /  1139 人查看  /  7 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

  1. package com.heima.dianzhao;

  2. import java.util.Scanner;

  3. /*
  4. * 1.         模拟审核身份证的过程,按照以下要求实现相关代码(友情提示:不一定要用正则)(8分)
  5.                 a.提示用户在控制台输入身份证号,用一个字符串对其进行保存(2分)
  6.                         1.创建扫描器对象Scanner
  7.                         2.用String line保存
  8.                 b.判断该身份证号位数是否是18位或者16位(2分)
  9.                         1.取字符长度,用变量保存,方便后边使用,并判断是否是18或16位
  10.                 c.判断该身份证号除最后一位外,是否都是数字(2分)
  11.                         1.利用身份证长度变量取出身份证前边的字符串
  12.                         2.把取出身份证号字符串用Long.parseLong()转换,把语句try 起来,没报错说明全是数字,报错提示用户重新输出
  13.                 d.将“410124199008010231”身份证号中生日(19900801)获取出来并且打印到控制台上(2分)
  14.                         1.因为身份证好从第7位开始8个字符串是身份证中的生日,直接用substring取出打印即可
  15.                        
  16. * */

  17. public class Test01 {
  18.         public static void main(String[] args) {
  19.                
  20. //                a.提示用户在控制台输入身份证号,用一个字符串对其进行保存(2分)
  21. //                1.创建扫描器对象Scanner
  22.                 Scanner sc = new Scanner(System.in);
  23.                 while (true) {
  24.                         System.out.println("请输入您的身份证号码:");
  25. //                2.用String line保存
  26.                         String id = sc.nextLine();
  27. //                b.判断该身份证号位数是否是18位或者16位(2分)
  28.                         int len = id.length();
  29.                         if (len != 16 && len != 18) {
  30.                                 System.out.println("您输入的身份证号码长度不符,请重新输入");
  31.                                 continue;
  32.                         }
  33.                        
  34.                         try {
  35. //                                1.利用身份证长度变量取出身份证前边的字符串
  36. //                                1.把取出身份证号字符串用Integer.parseInt()转换,把语句try 起来,没报错说明全是数字,报错提示用户重新输出
  37.                                 System.out.println(id.substring(0, len - 1));
  38.                                 Long.parseLong(id.substring(0, len - 1));
  39.                         } catch (Exception e) {
  40.                                 System.out.println("您输入的身份证有非法字符。");
  41. //                                e.printStackTrace();
  42.                                 continue;
  43.                         }
  44.                        
  45.                         //打印生日字段
  46.                         System.out.println(id.substring(6, 14));
  47.                         break;
  48.                        
  49.                        
  50.                 }
  51.                
  52.         }
  53. }
复制代码

7 个回复

倒序浏览
身份证最后一位可以是X啊
回复 使用道具 举报
mark。。。。
回复 使用道具 举报
package com.heima;

import java.util.Scanner;

public class ClassTest {
        public static void main(String[] args){
      Scanner sc = new Scanner(System.in);
      
      /*模拟审核身份证的过程,按照以下要求实现相关代码(友情提示:不一定要用正则)(8分)
      a.提示用户在控制台输入身份证号,用一个字符串对其进行保存(2分)
      b.判断该身份证号位数是否是18位或者16位(2分)
      c.判断该身份证号除最后一位外,是否都是数字(2分)
      d.将“410124199008010231”身份证号中生日(19900801)获取出来并且打印到控制台上(2分)*/
      
     A: while(true){
              String s = sc.nextLine();
              if(s.length()!=16&&s.length()!=18){
                      System.out.println("对不起, 您的输入有误,请重新输入");
                      continue;
              }
                for(int i =0;i<s.length();i++){
                        char c = s.charAt(s.length()-1);
                     if(i!=s.length()-1&&(s.charAt(i)>'9'||s.charAt(i)<'0')){
                             System.out.println("对不起, 您的输入有误,请重新输入");
                         continue A;
                         
                     }else if(c!='x'&&(c>'9'||c<'0')){
                             System.out.println("对不起, 您的输入有误,请重新输入");
                            continue A;
                     }
             }
                for (int j = 6; j < 14; j++) {
                        System.out.print(s.charAt(j));
                        }
           
      }
            
             
      
       
}
}
回复 使用道具 举报
学习了                  
回复 使用道具 举报
哪里的笔试题啊?
回复 使用道具 举报
记录一下!
回复 使用道具 举报
罗勇 中级黑马 2016-5-26 21:31:58
8#
学过了,过来复习一下!!!顺便支持一下
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马