java-12:주민등록 유효성 검사
import java.util.Scanner;
public class JuminCeck {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("주민등록번호 13자리를 '-'없이 입력하세요 :");
String juminNo = sc.nextLine();
// i : 0 1 2 3 4 5 6 7 8 9 10 11 12
// i % 8 0 1 2 3 4 5 6 7 0 1 2 3
// 주민등록번호 : 8 3 0 4 2 2 1 1 8 5 6 0 0
// * * * * * * * * * * * *
// 가중치 : 2 3 4 5 6 7 8 9 2 3 4 5
// = = = = = = = = = = = =
// 16 + 9 + 0 +20 +12 +14 +8 +9 +16 +15 +24 +0 = 143
// 143% 11 = 0 11 - 0 = 11 11에서 나머지를 뺀 결과가 2자
리 숫자면 10자리는 버리고 1자리만 취한다.
// 1 1 = 10
// 2 2 = 9
// 10 10 = 1
String check = "234567892345"; // 가중치
int sum = 0;
for(int i =0; i<12; i++) {
// 문자를 곰셈 연산하면 문자의 유니코드 값으로 곱한다.
// sum += (juminNo.charAt(i)- 48)* (check.charAt(i) -'0');
// sum += (juminNo.charAt(i)- 48)* (i <8 ? i+2 : i-6);
sum += (juminNo.charAt(i)- 48)* (i % 8 +2);
};
int result = (11 - sum % 11) % 10;
if(result == juminNo.charAt(12) - 48) {
System.out.println("정상");
} else {
System.out.println("오류");
}
}
}
-
둘리 주민번호는 틀렸음
-
8304221185601로 해주면 정상
댓글남기기