프로젝트를 수행 할 때는 존재할 수없는 일부 ID 카드 번호를 제거하는 것과 같이 얻은 데이터를 "청소"해야합니다. 온라인 ID 번호 검증 알고리즘을 확인하고 직접 요약하십시오.
(1) 18 ID 카드 번호의 구조
시민권 번호는 17 자리 숫자의 차체 코드와 학교 점검 코드로 구성된 기능 조합 코드입니다.
왼쪽에서 오른쪽으로의 배치 순서는 다음과 같습니다. 6 자리 번호 주소 코드, 8 개의 -기지 생년월일 코드, 3 개의 -자리 주문 코드 및 검증 코드입니다.
1. 주소 코드
코딩 객체가 위치한 카운티 (도시, 깃발 및 지구)의 행정 구역 부서 코드를 나타내며 GB/T2260의 조항에 따라 구현됩니다.
2. 생년월일 코드
이는 코딩 객체의 연간, 월 및 날이 GB/T7408의 조항에 따라 구현되며 연도, 월 및 일일 코드 사이에는 분리주의 기호가 없음을 의미합니다.
3. 순차적 코드
이는 동일한 주소 코드로 식별 된 영역 내에서 같은 해에 태어난 사람의 주문 번호, 같은 달, 같은 날 남성에게 할당되며 코드 수는 여성에게 할당됩니다.
4. 코드 계산 단계 확인 단계
(1) 차체 코드의 17 자리 숫자가 수식에 가중치
s = sum (ai * wi), i = 0, ..., 16, 처음 17 자리의 첫 17 자리 중 첫 번째 17 자리 중 첫 번째 17 자리 : 첫 번째 위치에 ID 숫자 수를 나타냅니다 (0 ~ 9)
WI : 7 10 5 8 8 2 1 6 7 10 5 8 4 2 (i의 가중치를 나타냅니다)
(2) 컴퓨팅 모드
y = mod (s, 11)
(3) 금형에 따르면 해당 체크 코드를 찾으십시오.
Y : 0 1 2 3 4 5 6 7 8 9 10 10
검증 코드 : 1 0 x 9 8 7 6 5 4 3 2 2
(2) 신체 코드의 17 자리에 따라 마지막 학교 검사 프로그램 인스턴스 얻기
공개 클래스 ID18 {int [] weight = {7,9,10,5,4,4,6,9,9,5,8,4,2}; '1', '0', 'x', '9', '8', '7', '5', '4', '3', '3', '3', '3' '2' }; {sum = sum+integer.parseint (string.valueof (id17.charat (i))*weight [i];} mode = sum%11; return value [mod];} public static void (string [] args) { ID18 Test = New ID18 ();
(3) 설명
1. 프로그램은 기존 17 자리 본문 코드를 기반으로 해당 검증 코드를 얻을 수 있습니다.
2.이 프로그램은 잘못된 확인 코드로 ID 번호를 제거 할 수 있습니다.
3.15 번째 ID 카드는 연말에 태어 났으며 마지막 학교 코드는 없었습니다.
4. 18 완전한 ID 카드의 직책 및 마지막 학교 시험은 비수기가 될 수 있습니다. 우리 프로젝트 중 하나 인 데이터베이스 보존의 첫 17 자리 숫자이므로 일부 SQL 문 (예 : 내부 조인)가 가속 효과가 있습니다! 교차로 교차로