java通过身份证前17位计算出身份证最后一位    加权因子

 

public static void main(String[] args) {
        //身份证号
        String id_num = "123";
        //权数数组
         int[] weightArray = {7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2};//权数数组
         String vCode = "10X98765432";
       
        int s = 0 ;
        for (int i = 0; i < 17; i++) {
            s+=    Integer.parseInt(String.valueOf(id_num.charAt(i)))*weightArray[i];
        }
        System.out.println(vCode.charAt(s % 11)); 
        }