⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 calculateid.java

📁 java swing源码 欢迎下载 有问题请联系 我一定负责到底
💻 JAVA
字号:
package com.sinosoft.common;
/*
 * 创建日期 2006-11-09
 *
 * TODO 要更改此生成的文件的模板,请转至
 * 鉴于老身份证只的15位,即可以在相应的位置加19,变成19位;然后根据17位数据生最后一位,使之成为18位 
 * @author leilufeng
 */
public class CalculateID {
/**
 * 根据身份证号码的前17位数字生成最后一位的校验码
 * @param IDCard17 身份证号码的前17位数字
 * @return 校验码(身份证号码的第18位)
 */
    public String GetCheckCode(String IDCard17){
    	/*
        '按照ISO 7064:1983.11-2校验码计算出来的检验码
        '公式如下:
        '∑(ai×Wi)(mod 11)
        'i----表示号码字符从右至左包括校验码在内的位置序号; 
        'ai----表示第i位置上的号码字符值; 
        'Wi----示第i位置上的加权因子,其数值依据公式Wi=2^(n-1)(mod 11)计算得出。
        **/
    
        int num = 0;
        int[] weight = new int[] {7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2, 1};
        for(int i=17;i>=1;i--){  
        	num+=Integer.parseInt(IDCard17.substring(17 - i, 17 - i+1)) * weight[17-i];
        }
        num = num % 11;
  		/*
        '然后根据计算的结果,从下面的表中查出相应的校验码,其中X表示计算结果为10: 
        '∑(ai×WI)(mod 11) 0 1 2 3 4 5 6 7 8 9 10 
        '校验码字符值ai 1 0 X 9 8 7 6 5 4 3 2
        */
        String checkcode ;
        switch ( num){
            case 0:
                checkcode = "1" ;
                break;
            case 1 :
                checkcode = "0";
                break;
            case 2 :
                //TODO: 我的身份证是大的写的,所以就写成大写的X
                checkcode = "X";
                break;
            default:
                checkcode = String.valueOf (12 - num);
        	}
        return checkcode;
    }

    /**
     * 从17位转换位18位
     * @param IDCard17
     * @return
     */
    public String getIDCard18(String IDCard17){
    	StringBuffer sb=new StringBuffer(IDCard17);
    	sb.append(GetCheckCode(sb.toString()));
    	return sb.toString();
    }
 public static void main(String[] args) {
	 CalculateID cid= new CalculateID(); 
	 System.out.println(cid.getIDCard18("370206711202001"));
	 System.out.println("431023198210235417x".replace('X', 'x'));//dujh修改 2008年7月15
 }
 
 
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -