java 身份证15位转18位
/**
* 根据身份证号获取性别
*
* @param pid
* 身份证号
* @return 性别 F为女M为男
*/
public static String getSexByPid(String pid)throws Exception{
if(pid!=null&&(pid.trim().length()== 15||pid.trim().length()==18)){
if(pid.trim().length()==15){
String pid18 = "";//pid15To18(pid);
if(Integer.parseInt(pid18.substring(16,17))%2==0){
return "女";
}else{
return "男";
}
}else{
if(Integer.parseInt(pid.substring(16,17))%2==0){
return "女";
}else{
return "男";
}
}
}else{
return null;
}
} /**
* 15位身份证 转18位
* lsp 2017年1月19日13:47:52
* @param fifteenIDCard
* @return
* @throws Exception
*/
public static String getEighteenIDCard(String fifteenIDCard) throws Exception {
if (fifteenIDCard != null && fifteenIDCard.length() == 15) {
StringBuilder sb = new StringBuilder();
sb.append(fifteenIDCard.substring(0, 6)).append("19").append(
fifteenIDCard.substring(6));
sb.append(getVerifyCode(sb.toString()));
return sb.toString();
} else {
throw new Exception("不是15位的身份证");
}
} /**
* 获取身份证的校验码
* lsp 2017年1月19日13:47:52
* @param idCardNumber
* @return
* @throws Exception
*/
public static char getVerifyCode(String idCardNumber) throws Exception {
if (idCardNumber == null || idCardNumber.length() < 17) {
throw new Exception("不合法的身份证号码");
}
char[] Ai = idCardNumber.toCharArray();
int[] Wi = { 7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2 };
char[] verifyCode = { '1', '0', 'X', '9', '8', '7', '6', '5', '4', '3',
'2' };
int S = 0;
int Y;
for (int i = 0; i < Wi.length; i++) {
S += (Ai[i] - '0') * Wi[i];
}
Y = S % 11;
return verifyCode[Y];
} public static void main(String[] args) throws Exception {
System.out.println(getEighteenIDCard("330324360802695"));
}
java 身份证15位转18位的更多相关文章
- java中身份证号15位转18位
/** * 将15位转换为18位 * @param idCode 15位身份证号 * @return String 18位身份证号 */ public String toEighteen(String ...
- 身份证号码15位转18位 C#实现
[身份证最后一位神秘X的由来]身份证中的“冷知识”1999年的今天,<国务院关于实行公民身份号码制度的决定>被发布,当年10月1日实施.为什么有的有X?这位数是根据前17位计算出的校验码. ...
- 做一个牛XX的身份证号验证类(支持15位和18位)
原文:做一个牛XX的身份证号验证类(支持15位和18位) #region 是否合法的中国身份证号码 protected bool IsChineseID() { if (str.Length == 1 ...
- php 验证身份证有效性,根据国家标准GB 11643-1999 15位和18位通用
//验证身份证是否有效 function validateIDCard($IDCard) { if (strlen($IDCard) == 18) { return check18IDCard($ID ...
- C# 身份证号码15位和18位验证
/// <summary> /// 身份证 /// </summary> [Serializable] public class IDCard { /// <su ...
- js从字符串中提取身份证号,连续18位数字
<!DOCTYPE html> <html> <head> <title>提取身份证号</title> <meta charset=& ...
- 18位身份证验证--java实现,正则表达式
简单的正则表达式: (1)preg_match("/^(\d{18,18}|\d{15,15}|\d{17,17}x)$/",$id_card)(2)preg_match(&quo ...
- Js完美验证15/18身份证,Js验证身份证,支持15/18位
Js完美验证15/18身份证,Js验证身份证,支持15/18位 >>>>>>>>>>>>>>>>> ...
- js验证15位或18位身份证
本篇文章是本人在网上搜集了一些验证,然后又个人进行一定修改的关于身份证的验证,欢迎修改指正..... function IdCardValidateRule(idCard) { var tip; ...
随机推荐
- 再谈js传值和传址
js的传值和传址还是真绕,前回文说道 1.值类型是传值的 2.对象和数组是传址的 这两点通过例子的到了证实 然而还有一种情况没有讨论 即 函数的参数的传值和传址 通过实验,在函数中用一个新对象去覆盖传 ...
- 配置ORACLE的PRO*C环境
1.访问数据库的方法 在ORACLE数据库管理和系统中,有三种访问数据库的方法: ⑴.用SQL*Plus, 它有SQL命令以交互的应用程序访问数据库: ⑵.用第四代语言应用开发工具开 ...
- JMeter上传图片
JMeter怎样上传图片? 请注意图片的路径要与.jmx脚本的目录保持一致, 或者放在JMeter的bin目录下. 协议:http 服务器名称或IP:www.abcdef.com 方法:POST 路径 ...
- CSP201503-1:图像旋转
引言:CSP(http://www.cspro.org/lead/application/ccf/login.jsp)是由中国计算机学会(CCF)发起的"计算机职业资格认证"考试, ...
- git部署详解
1.1 关于版本控制 1.1.1 本地版本控制 本地版本控制系统 许多人习惯用复制整个项目目录的方式来保存不同的版本,或许还会改名加上备份时间以示区别.这么做唯一的 好处就是简单,但是特别容易犯错.有 ...
- HDU 3689 Infinite monkey theorem(DP+trie+自动机)(2010 Asia Hangzhou Regional Contest)
Description Could you imaging a monkey writing computer programs? Surely monkeys are smart among ani ...
- NO9——线段相关
#include <stdio.h> #include <iostream> #include <math.h> #include <algorithm> ...
- cocos2d-x 显示中文字符和解析XML文件 转载
源地址:http://codingnow.cn/cocos2d-x/1038.html 在cocos2d-x中直接显示中文的时候会出现乱码,虽然在实际开发中把字符串直接写在代码里也不是好的做法,但是有 ...
- [boost-2] 智能指针
boost库学习: 智能指针: shared_ptr指针,定义在boost::shared_ptr,如果开发环境支持的话,可以使用memory中的std::shared_ptr. shared_ptr ...
- 201621044079 week07-JAVA GUI类
作业07-Java GUI编程 1. 本周学习总结 1.1 思维导图:Java图形界面总结 1.2 可选:使用常规方法总结其他上课内容. 2.书面作业 1. GUI中的事件处理 1.1 写出事件处理模 ...