问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

用java写一个方法,转入一个身份证号,判断该身份证末位是否合法

发布网友 发布时间:2022-05-13 18:24

我来回答

2个回答

热心网友 时间:2023-10-20 11:02

/**
* 功能:身份证的有效验证
*
* @param IDStr 身份证号
* @return 有效:返回"" 无效:返回String信息
* @throws NumberFormatException
* @throws ParseException
*/
public static String IDCardValidate(String IDStr) {
String errorInfo = "";// 记录错误信息
String[] ValCodeArr = { "1", "0", "x", "9", "8", "7", "6", "5", "4",
"3", "2" };
String[] Wi = { "7", "9", "10", "5", "8", "4", "2", "1", "6", "3", "7",
"9", "10", "5", "8", "4", "2" };
String Ai = "";
// ================ 号码的长度 15位或18位 ================
if (IDStr.length() != 15 && IDStr.length() != 18) {
errorInfo = "身份证号码长度应该为15位或18位。";
return errorInfo;
}
// =======================(end)========================

// ================ 数字 除最后以为都为数字 ================
if (IDStr.length() == 18) {
Ai = IDStr.substring(0, 17);
} else if (IDStr.length() == 15) {
Ai = IDStr.substring(0, 6) + "19" + IDStr.substring(6, 15);
}
if (isNumeric(Ai) == false) {
errorInfo = "身份证15位号码都应为数字 ; 18位号码除最后一位外,都应为数字。";
return errorInfo;
}
// =======================(end)========================

// ================ 出生年月是否有效 ================
String strYear = Ai.substring(6, 10);// 年份
String strMonth = Ai.substring(10, 12);// 月份
String strDay = Ai.substring(12, 14);// 月份
if (isDataFormat(strYear + "-" + strMonth + "-" + strDay) == false) {
errorInfo = "身份证生日无效。";
return errorInfo;
}
GregorianCalendar gc = new GregorianCalendar();
SimpleDateFormat s = new SimpleDateFormat("yyyy-MM-dd");
try {
if ((gc.get(Calendar.YEAR) - Integer.parseInt(strYear)) > 150
|| (gc.getTime().getTime() - s.parse(
strYear + "-" + strMonth + "-" + strDay).getTime()) < 0) {
errorInfo = "身份证生日不在有效范围。";
return errorInfo;
}
} catch (NumberFormatException e) {
// TODO 自动生成的 catch 块
e.printStackTrace();
return errorInfo = "身份证生日无效";
} catch (ParseException e) {
// TODO 自动生成的 catch 块
e.printStackTrace();
return errorInfo = "身份证生日无效";
}
if (Integer.parseInt(strMonth) > 12 || Integer.parseInt(strMonth) == 0) {
errorInfo = "身份证月份无效";
return errorInfo;
}
if (Integer.parseInt(strDay) > 31 || Integer.parseInt(strDay) == 0) {
errorInfo = "身份证日期无效";
return errorInfo;
}
// =====================(end)=====================

// ================ 地区码时候有效 ================
Hashtable h = GetAreaCode();
if (h.get(Ai.substring(0, 2)) == null) {
errorInfo = "身份证地区编码错误。";
return errorInfo;
}
// ==============================================

// ================ 判断最后一位的值 ================
int TotalmulAiWi = 0;
for (int i = 0; i < 17; i++) {
TotalmulAiWi = TotalmulAiWi
+ Integer.parseInt(String.valueOf(Ai.charAt(i)))
* Integer.parseInt(Wi[i]);
}
int modValue = TotalmulAiWi % 11;
String strVerifyCode = ValCodeArr[modValue];
Ai = Ai + strVerifyCode;

if (IDStr.length() == 18) {
if (Ai.equals(IDStr) == false) {
errorInfo = "身份证无效,不是合法的身份证号码";
return errorInfo;
}
} else {
return "";
}
// =====================(end)=====================
return "";
}

热心网友 时间:2023-10-20 11:03

那不是都合法?????
用java写一个方法,转入一个身份证号,判断该身份证末位是否合法

param IDStr 身份证号 return 有效:返回"" 无效:返回String信息 throws NumberFormatException throws ParseException / public static String IDCardValidate(String IDStr) { String errorInfo = "";// 记录错误信息 String[] ValCodeArr = { "1", "0", "x", "9", "8", "7", "6", ...

使用java判断输入身份证号位数是否正确?判断输入是否有效?

public static void getString(){\x0d\x0a String a,b;\x0d\x0a while (true) {\x0d\x0a Scanner input = new Scanner(System.in);\x0d\x0a System.out.println("请输入您的18位身份证号码!!");\x0d\x0a a = (String) input.next();\x0d\x0a if (a...

用JAVA语言从键盘上输入一个身份证号码:回车之后,判断是否为正确号码...

import java.util.*;public class Identity{ public static void main(String args[]){ Scanner s=new Scanner(System.in);System.out.print("请输入你的身份证号码(必须为数字或x):");String l=s.nextLine();if(l==""){ System.out.print("身份证号码不能为空!");} else if(l.leng...

java编程,关于身份证验证问题。求大神指点

import java.util.*;public class test{public static void main(String[] args) {Scanner in=new Scanner(System.in);System.out.println("请输入18位的身份号码:");String s="^[0-9]{17}([0-9]|x)";//正则表达式String str=in.next();while(!str.matches(s)){//用mathes方法匹配...

java字符串操作,验证输入的身份证合法与否

要求:如果输入的身份证不是18位,或者格式不正确(包含非数字字符,除了最后一位的X除外)则返回一个字符串“您输入的身份证号码有误”/ import java.util.Scanner;public class JudgeID { public static void main(String[] args){ Scanner reader = new Scanner(System.in);System.out.println("...

java怎么验证身份证合法,

//身份证正则表达式(18位)isIDCard2=/^[1-9]\d{5}[1-9]\d{3}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}([0-9]|X)$/;地区、性别和身份证进行判断的正则表达式: var aCity={11:"北京",12:"天津",13:"河北",14:"山西",15:"内蒙古",21:"辽宁",22:"吉林...

java 程序判断身份证最后一位是不是大写X

public class $ { public static void main(String[] args) { String id = "12345678901234567x"; // 由于身份证号最多有一个x,所以可以直接替换 id = id.toUpperCase(); System.out.println(id); }}

在java后台,用正则表达式验证身份证

private String checkPattern(String str){ String len;String regEx="[`~!@#$%^&amp;*()+=|{}':;',\\[\\].&lt;&gt;/?~!@#¥%……&amp;*()——+|{}【】‘;:”“’。,、?]";Pattern p = Pattern.compile(regEx);Matcher m = p.matcher(str);len=m.replaceAll(""...

在java中身份证号码前17位必须是数字,后一位可以是字符,如果不是提示...

使用正则表达式即可!如:String regex="\\d{17}." //正则表达式,前17位数字,后1一位为任意字符 //定义一个身份证String字符串 String string="12345678912345678x"//验证身份证 if(!string.matches(regex))System.out.println("身份证错误");

java判断输入的18位数(最后一位可能是x)的身份证是否合法

super("检查身份证号");setBounds(0,0,400,60);setResizable(false);setLayout(new java.awt.FlowLayout());setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);txtIDNumber=new JTextField(18);add(txtIDNumber);btnCheck=new JButton("检查");btnCheck.addActionListener(new ActionListener(){ pub...

怎么根据身份证号判断男女 给我一个身份证号码 java判断是否为null java怎么判断是否为空 java判断文件是否存在 我的身份证号码是多少 有身份证号怎么查个人信息 18位身份证号提取年龄 18位身份证号怎么看男女
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
在网贷平台借款是否合法?如何判断网贷公司合法性? 怎样才能把礼物送给别人而又不显得尴尬呢? 笔记本电脑黑屏只有鼠标的解决方法 戴尔笔记本开机黑屏只有鼠标是怎么回事? 如何申请澳大利亚旅游签证? | 澳洲旅游签证申请攻略 笔记本开机黑屏只有鼠标怎么办? 笔记本电脑黑屏,但是鼠标可以移动? 石家庄铁道大学现任领导 石家庄铁道大学行政级别 为什么卡西欧的计算器很牛很多都被称为竞赛决赛指定用机 党组织监督制度 自建博客的流程 求机关工委学习党风廉政建设的会议记录 2011年 党风廉政建设会议记录谁有啊 上半年乡分管领导开党风廉政建设的会议记录怎么写 烦请高人提供些党风廉政建设、消防安全、道路交通安全、社会治安综合治理等工作的会议记录 部门负责人对党风廉政建设工作亲自过问会议记录 亚都和德尔玛的加湿器哪个好? 干灵芝怎么吃啊 有什么说法吗 现在加微商的,为什么不用验证,其实微商还没验证,怎么会直接聊天呢? 天罡真机的外天罡真源 与命运顽强抗争的人物的感人事迹写作文怎么写 写记忆中最难忘的一个人(作文)要通过具体事例让别人了解他给你留下深刻印象的原因 求十二神将的性质 定义 与象意 方舟生存进化河狸在哪抓攻略 刷河狸地点详解 方舟手游只有红树林有蛇吗? 方舟手游出生点在哪好 方舟生存进化老地图什么位置建家好防守 在柳州请建筑升降机多少钱一天? 高中定语从句解答!! java判断输入的18位数(最后一位可能是x)的身份证是否合法 java验证身份证号码是不是有效源代码 小学生作文《亲身经历的一件事》 用JAVA语言写,下面是二代身份证号码的检查函数的头部,请根据文档注释完成函数体。 一件亲身经历的事作文708字 作文:写一件亲身经历的事 6年级语文作文亲身经历的一件事 四年级作文:自己亲身经历的事 小学六年级作文 我亲身经历了这件事 爱可美与飞跃哪个好呀? 爱可美565缝纫机坏了,勾不上低线了怎么维修? 胜家4432和爱可美2600a究竟哪个性能好 苹果6经常点击屏幕失灵这是什么原因? 我的360每次开机都不能自动开启文件实时保护! w11实时保护怎么开启- 问一问 为什么会侧漏 thinkpad E450运行defender,不能开启实时保护。 Windows Defender实时保护无法开启 小米4稳定版怎么关掉开发者选项 男士一般用什么香水?