黑马程序员技术交流社区

标题: 分享一个笔试题 [打印本页]

作者: 即墨    时间: 2016-5-24 23:10
标题: 分享一个笔试题
  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.将“41012419900801****”身份证号中生日(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. }
复制代码

作者: 我有上将潘凤    时间: 2016-5-25 22:57
mark。。。。
作者: 何亚辉    时间: 2016-5-25 23:28
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.将“41012419900801****”身份证号中生日(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));
                        }
           
      }
            
             
      
       
}
}

作者: sasyun    时间: 2016-5-26 00:06
学习了                  
作者: gsa798780633    时间: 2016-5-26 16:51
哪里的笔试题啊?
作者: Hyperion    时间: 2016-5-26 21:14
记录一下!
作者: 罗勇    时间: 2016-5-26 21:31
学过了,过来复习一下!!!顺便支持一下




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2