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

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


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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 【MySQL】MySQL分库分表详解[通俗易懂]

    目录一、前言1.1数据量1.2磁盘1.3数据库连接二、垂直拆分or水平拆分?三、垂直拆分3.1垂直分库3.2垂直分表3.3垂直拆分的优缺点四、水平拆分4.1水平分表4.2水平分库分表4.3水平拆分的优缺点五、几种常用的分库分表的策略5.1根据数值范围5.2根据数值取模5.3根据地理位置六、分库分表…

    2022年4月6日
  • asp空间和php空间_两个最新空间及回顾100Mphp及数个asp免费空间放「建议收藏」

    asp空间和php空间_两个最新空间及回顾100Mphp及数个asp免费空间放「建议收藏」两个最新空间及回顾100Mphp及数个asp免费空间放(2005-05-1821:52:09)两个最新空间及回顾100Mphp及数个asp免费空间放论坛[推荐][原创]…..[顶楼]两个最新空间是3月20日刚推出的,请见本贴尾(9)、虎虎在线3月刚推出的免费空间(10)、靖州铁通30M全能空间(3月20日刚推出的)原创100Mphp及数个asp免费空间放论坛![推荐]本贴不是加密贴,所以回…

    2022年10月19日
  • 关于FIONREAD命令的作用[通俗易懂]

    关于FIONREAD命令的作用[通俗易懂]当在ioctl里使用FIONREAD时,除了获得所指定的读缓存大小以外,还有清除设备准备就绪状态的作用.代码CodehighlightingproducedbyActiproCodeHig

    2022年7月3日
  • tomcat路径怎么找_tomcat项目路径

    tomcat路径怎么找_tomcat项目路径Maven配置覆盖内嵌tomcat虚拟映射路径

    2022年4月21日
  • linux版本i686,在Ubuntu中’i686’是什么意思? – Ubuntu问答

    linux版本i686,在Ubuntu中’i686’是什么意思? – Ubuntu问答问题描述检查我是使用32位还是64位Ubuntu。我查看了如何检查我是否拥有32位或64位操作系统?,发现此答案为uname-a。如果它显示为i386,它将是32位和amd64,它将是64位,但我得到了这个结果:Linuxmukund-ThinkPad-Edge-E4313.8.0-35-generic#50-UbuntuSMPTueDec301:25:33UTC2013i…

    2022年6月7日
  • c语言之选择排序法

    c语言之选择排序法c语言之选择排序法啊,这是我第一次写文章,可能会有很多不足,希望大家可以给我指出。问题:选择法排序题目描述输入一个正整数n,再输入n个整数,将他们从大到小排序后输出。样例输入525134样例输出54321//精髓就是要交换数值大小;#include<stdio.h>intmain(){ intn; scanf(“%d”,&n);//定义有多少数; inti,a[n]; for(i=0;i<n;i++) { s

    2022年6月25日

发表回复

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

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