java 身份证15位转18位「建议收藏」

java 身份证15位转18位「建议收藏」1/**2*根据身份证号获取性别3*4*@parampid5*身份证号6*@return性别F为女M为男7*/8publicstaticStringg

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

 1 /**
 2        * 根据身份证号获取性别
 3        * 
 4       * @param pid
 5        *            身份证号
 6        * @return 性别 F为女M为男
 7        */
 8      public static String getSexByPid(String pid)throws Exception{
 9          if(pid!=null&&(pid.trim().length()== 15||pid.trim().length()==18)){
10              if(pid.trim().length()==15){
11                  String pid18 = "";//pid15To18(pid);
12                  if(Integer.parseInt(pid18.substring(16,17))%2==0){
13                      return "女";
14                  }else{
15                      return "男";
16                  }
17              }else{
18                  if(Integer.parseInt(pid.substring(16,17))%2==0){
19                      return "女";
20                  }else{
21                      return "男";
22                  }
23              }
24          }else{
25              return null;
26          }
27     }
28      
29     
30      /**
31       * 15位身份证 转18位   
32       * lsp  2017年1月19日13:47:52 
33       * @param fifteenIDCard
34       * @return
35       * @throws Exception
36       */
37     public static String getEighteenIDCard(String fifteenIDCard) throws Exception {
38         if (fifteenIDCard != null && fifteenIDCard.length() == 15) {
39             StringBuilder sb = new StringBuilder();
40             sb.append(fifteenIDCard.substring(0, 6)).append("19").append(
41                     fifteenIDCard.substring(6));
42             sb.append(getVerifyCode(sb.toString()));
43             return sb.toString();
44         } else {
45             throw new Exception("不是15位的身份证");
46         }
47     }
48     
49     /**
50      *  获取身份证的校验码 
51      *  lsp  2017年1月19日13:47:52 
52      * @param idCardNumber
53      * @return
54      * @throws Exception
55      */
56     public static char getVerifyCode(String idCardNumber) throws Exception {
57         if (idCardNumber == null || idCardNumber.length() < 17) {
58             throw new Exception("不合法的身份证号码");
59         }
60         char[] Ai = idCardNumber.toCharArray();
61         int[] Wi = { 7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2 };
62         char[] verifyCode = { '1', '0', 'X', '9', '8', '7', '6', '5', '4', '3',
63                 '2' };
64         int S = 0;
65         int Y;
66         for (int i = 0; i < Wi.length; i++) {
67             S += (Ai[i] - '0') * Wi[i];
68         }
69         Y = S % 11;
70         return verifyCode[Y];
71     }
72     
73     public static void main(String[] args) throws Exception {
74         System.out.println(getEighteenIDCard("330324360802695"));
75     }

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/167165.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 深圳印象

    深圳印象

    2021年7月30日
    46
  • python 生成exe,脱离python环境运行

    python 生成exe,脱离python环境运行1、python环境为Anaconda2,安装的环境为python2.7.12。安装Anaconda2,路径为https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/Anaconda2默认为base,重新生成一个虚拟环境(默认安装的base安装了太多模块,生成exe运行速度较慢)并切换到python…

    2022年5月27日
    33
  • ERROR running qmake

    ERROR running qmake1>ReadingQtconfiguration(D:/SoftWare/QT5.9.3/5.9.3/msvc2017_64/bin/qmake)1>GHViewerDetect.vcxproj:error:ERRORrunningqmake1>GHViewerDetect.vcxproj:error:qmake:(D:/SoftWare/QT5.9.3/5.9.3/msvc2017_64/bin/qmake)1>GHViewerDetect.vcx

    2022年5月19日
    99
  • windows日志转发到服务器_windows查看日志

    windows日志转发到服务器_windows查看日志配置windows日志事件转发详细教程

    2022年9月8日
    0
  • Linux(笔记)[通俗易懂]

    Linux(笔记)[通俗易懂]开启端口时,宝塔面板和阿里云都要开启简介我们为什么要学习Linuxlinux诞生了这么多年,以前还喊着如何能取代windows系统,现在这个口号已经小多了,任何事物发展都有其局限性都有其天花板。就如同在国内再搞一个社交软件取代腾讯一样,想想而已基本不可能,因为用户已经习惯于使用微信交流,不是说技术上实现不了解而是老百姓已经习惯了,想让他们不用,即使他们自己不用亲戚朋友还是要用,没有办法的事情。用习惯了windows操作系统,再让大家切换到别的操作系统基本上是不可能的事情,改变一个人已经养成的习惯

    2022年6月5日
    21
  • @RequestBody 和 @RequestParam可以同时使用

    @RequestBody 和 @RequestParam可以同时使用@RequestParam和@RequestBody这两个注解是可以同时使用的。网上有很多博客说@Requestparam和@RequestBody不能同时使用,这是错误的。根据HTTP协议,并没有说post请求不能带URL参数,经验证往一个带有参数的URL发送post请求也是可以成功的。自己个人实际验证结果:packagecom.example.model;import…

    2022年6月16日
    95

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号