身份证15位与18位互转

最近在做一项目,用户可能用的是18位身份证号查询信息,但是登记的时候用的是15位身份证号登记的 ,想了好久最终,想到在后台获取到身份证号,通过工具类转化,18位转15位,这样取到两种身份证号,传到数据库用 OR 条件拼接就好了
package com.until;
/*** 15位及18位身份证互转类* @author * @date 2020/07/20**/
public class IDCardUtil {private IDCardUtil(){//todo}/*** 15位身份证转18位* @param idCard* @return*///15位转18位的,需要一个15位的身份证号参数public static String getIdCardfrom15to18(String idCard15){StringBuffer idCard18 = new StringBuffer(idCard15);// 校验码值char[] checkBit = { '1', '0', 'X', '9', '8', '7', '6', '5', '4', '3','2' };int sum = 0;if(idCard15.length() != 15){throw new RuntimeException("the length of idcard is not 15");}idCard18.insert(6, "19");for(int  i = 0; i < idCard18.length(); i++){char c = idCard18.charAt(i);int num = c - '0';//获取当前权重int weight = (int)(Math.pow(2, idCard18.length() - i)) % 11;sum += num * weight;}//sum求模int index = sum % 11;//append校验码idCard18.append(checkBit[index]);return idCard18.toString() ;}//18位转15位的,需要一个18位的身份证号参数public static String  getIdCardfrom18to15(String idCard18){StringBuffer idCard15 = new StringBuffer(idCard18);if(idCard15.length() != 18){throw new RuntimeException("the length of idcard is not 18");}idCard15.delete(17, 18);idCard15.delete(6, 8);return idCard15.toString();}
}

校验身份证合法性(18位与15位互转)相关推荐

  1. 身份证校验(//身份证号合法性验证 //支持15位和18位身份证号//支持地址编码、出生日期、校验位验证)

    window.checkIdNumber=(function () {var vcity = {11: "北京", 12: "天津", 13: "河北 ...

  2. js验证身份证合法性(最后一位的校验)

    粘之即用,欢迎测试. <!DOCTYPE html> <html><head><meta charset="UTF-8"><t ...

  3. javascript实现完美身份证号有效性验证15位18位

    欢迎各位朋友!   前几天在开发中要求对用户的身份证号进行比较严格的校验,所以才有了这些代码, 下面的这些代码主要包括对身份证长度,地区,出生日期的校验. 方法在return时返回了一个是否通过以及提 ...

  4. 判断身份证:要么是15位,要么是18位,最后一位可以为字母,并写程序提出其中的年月日

    package com.demo;public class Demo3 {public static void main(String[] args) {/** 判断身份证:要么是15位,要么是18位 ...

  5. 身份证号码工具类(15位,18位,10位)

    解析身份证信息的工具类,包括获得身份证的出生日期,性别,身份证省份,留作自用 import java.text.ParseException; import java.text.SimpleDateF ...

  6. Mysql 判断身份证号码是否满足15位或者18位

    select * from user where cardno REGEXP '[0-9]{18}|[0-9]{17}X|[0-9]{15}'; 说明--使用正则判断,满足条件18位纯数字或者17位纯 ...

  7. Java校验身份证合法性 (通过火车票上显示的号码计算身份证号)

    今天看到CSDN推送的消息<我用 Python 算出了同事的身份证号码>自己也想用Java写一个! 当然稍稍改一下就能做身份证合法校验! 下面贴代码! package test;impor ...

  8. js 身份证精确校验(支持15位和18位身份证号 )

    js 校验方法 //身份证号合法性验证 //支持15位和18位身份证号 //支持地址编码.出生日期.校验位验证 function IdentityCode(code){var city={11:&qu ...

  9. 简单的关于身份证(15位或者18位)合法性验证

    简单的关于身份证(15位或者18位)合法性验证 package com.clark.test.idcard;/*** 测试校验身份证合法性的小程序* <p>我们常用的身份证号码为18位或者 ...

最新文章

  1. java linux文件夹大小_Linux_Linux文件夹大小查看办法, 1. du -sh查看当前文件 - phpStudy...
  2. getter方法的作用 vuex_Vuex入门篇——基本使用
  3. 基于matlab 读取文件夹 保存文件夹
  4. github怎么自动更新被人更新过的项目_8 个程序员应该掌握的 GitHub 实用技巧
  5. 今天携程出事了:让我们来学习下http的响应码
  6. c语言下面程序的功能是求圆的周长和面积.请改正程序中带*行中,2012年计算机等级考试二级C语言上机题(5)...
  7. 《代码大全》程序员们怎样花费自己的时间
  8. lLinux编程大全
  9. 两个字符串 char* a, char* b,输出b在a中的位置次序。
  10. php libev扩展使用
  11. Python的遗传算法GA优化深度置信网络DBN超参数回归预测
  12. 在制作Windows虚拟机模板时的常用技巧
  13. ps如何快速抠图色彩范围抠图#ps教程#ps学习#ps基础
  14. CV战神常用代码-----kj15
  15. 华为HCNA实验学习
  16. vitamio视频框架使用详解
  17. Linux中的rm指令
  18. 6、Flutter Widgets 之 InkWell 和 Ink
  19. excel表格分割线一分为二_Python与Excel交互——Xlwings
  20. 如何构建基于 Web Excel 组件的指标补录平台

热门文章

  1. powderdesigner的简单用法
  2. excel一列求和_这么多超实用的excel技巧,花费6个小时整理出来的
  3. 30岁软件工程师的迷茫和悲哀
  4. ImageJ+OriginLab简单实现区域信号强度统计
  5. 人血清白蛋白修饰绿原酸/诺氟沙星/沙拉沙星, HSA-CA/Nor/Sarafloxacin
  6. 8uftp连接linux并传输文件
  7. 用友T+销售出库单审核之后成本金额会变化
  8. 65.RocketMQ
  9. IBM WebSphere 开发者技术期刊: 最重要的 Java EE 最佳实践
  10. Spring整合AMQ