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

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

发布网友 发布时间:2022-04-29 22:28

我来回答

5个回答

热心网友 时间:2022-06-24 13:57

public class $ {

    public static void main(String[] args) {

        String id = "12345678901234567x";

        // 由于身份证号最多有一个x,所以可以直接替换
        id = id.toUpperCase();
        System.out.println(id);
    }
}

热心网友 时间:2022-06-24 13:58

将身份证号截取装进字符数组,然后判断最后一位是否等于X的ascall码,就OK了。。

热心网友 时间:2022-06-24 13:58

直接转换成大写!就行吧!追问太简单了,怎么截断最后一位?怎么转换?

热心网友 时间:2022-06-24 13:59

package com.uttest;
import com.util.*;
import javax.swing.*;
import java.awt.event.*;
public class IDTestCase extends JFrame{
JTextField txtIDNumber;
JButton btnCheck;
public IDTestCase(){
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(){
public void actionPerformed(ActionEvent e){
JOptionPane.showMessageDialog(null,IDNumberChecker.isLegal(txtIDNumber.getText())?"合法":"非法","检查结果",JOptionPane.INFORMATION_MESSAGE);
}
});
add(btnCheck);
setVisible(true);
}
public static void main(String[] args){
new IDTestCase();
}
}
//IDNumberCheck.java
package com.util;
public class IDNumberChecker{
public static boolean isLegal(String IDNumber){
boolean result=IDNumber.matches("[0-9]{15}|[0-9]{17}[0-9X]");
if(result){
int year,month,date;
if(IDNumber.length()==15){
year=Integer.parseInt(IDNumber.substring(6,8));
month=Integer.parseInt(IDNumber.substring(8,10));
date=Integer.parseInt(IDNumber.substring(10,12));
}
else{
year=Integer.parseInt(IDNumber.substring(6,10));
month=Integer.parseInt(IDNumber.substring(10,12));
date=Integer.parseInt(IDNumber.substring(12,14));
}
switch(month){
case 2:result=(date>=1)&&(year%4==0?date<=29:date<=28);break;
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:result=(date>=1)&&(date<=31);break;
case 4:
case 6:
case 9:
case 11:result=(date>=1)&&(date<=31);break;
default:result=false;break;
}
}
return result;
}
}

热心网友 时间:2022-06-24 13:59

这种需求用正则表达式去处理很方便:
public static void main(String[] args) {

String kard = "12345678901020304X";
Pattern p = Pattern.compile("(\\d{15,17}.*)");
//判断是否身份证格式
Matcher mat = p.matcher(kard);
if(!mat.find()){
System.out.println("不是身份证号码!");
return;
}

//判断是否以X结尾
p = Pattern.compile("(\\d{15,17}X)");
mat = p.matcher(kard);
if(mat.find()){
System.out.println("存在以X结尾的号码:" + mat.group(1));
}else{
System.out.println("以X结尾的身份中号码不存在!");
}
}
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
工科考研50分数学能过国家线吗 数一工科国家线一般多少分 笔记本电脑无线连接epson爱普生打印机wifi怎么连接 爱普生如何无线连接 身份证注销了银行卡还可以用吗 8424西瓜是哪里产的? 一个人开两个支付宝是同一个二维码吗 买个衣服很生气,投诉无门, 拉夏贝尔衣服可以退吗 断桥铝门窗有多少种 寻宝全靠巧,猜一数字几? 在java中对身份证号码分析中不能出现全是字母怎么对其进行条件判断 巧媳妇猜一个数字 用java写一个方法,转入一个身份证号,判断该身份证末位是否合法 (巧)字猜个数字是几 (巧)字猜个数字是几? 怎样在JAVA判断出生日期 和 身份证中的出生日期 相等! 京东上卖的祖马龙香水是真的吗 祖马龙香水是真是假? 冰箱里有调温度的,1-5,冬天该用几? 冰箱冬天开数字几最合适 刚果的一些人文地理 tcl电视多屏互动同一个网络怎么连接不上呢 虹桥站走到到虹桥机场t2一般到哪里接机为啥我找不到&#xF31A;? 携程接机怎么用 导游在机场接机的程序是怎样的? 请翻译下英文 多谢 急!帮我看看这句的英文怎么翻译比较好呢 万分感谢 库看TV多屏互动怎么实现? 如果公司派你去机场接机,对方是一位英国女士,你应该做好哪些安排,要注意的 凑巧凑巧真凑巧猜一数字 巧夺天工打一数字? Java 判断身份证格式 楹联对仗,巧猜一个数字 巧媳妇打一数字 java程序怎么判断身份证是不是未成年? 弄巧成拙。打一个数字是几? 百度的内容没有了语音 巧舌把人骗打一0至9数字 百度语音怎样找 巧设连环计打一个数字 巧夺天工?打一数字 金立手机里的百度语音播报如何开启 一双巧手打一数字 百度语音播报功能为什么不能用? 惠普笔记本键盘不能打字了按哪个键恢复- 问一问 巧木塔桥一难过,猜一个数字。 巧舌战群儒,打一个数字 笔记本电脑键盘打不出字按哪个键 如何干扰gps信号发射