① 마지막 자리를 제외한 앞자리 수를 규칙에 맞게 곱한다.
② 규칙에 맞게 곱셈 연산을 수행한 결과를 모두 더한다.
③ 더해진 결과물을 11로 나누어 『나머지』를 구한다.
④ 11에서 나머지를 뺀 결과값을 구한다.
⑤ ④번째 에서 처리한 연산 결과가 주민번호를 구성하는 마지막 숫자와 일치하는지 비교한다
public static boolean checkJumin(String juminNumber) {
int [] chkarr = {2, 3, 4, 5, 6, 7, 8, 9, 2, 3, 4, 5};
int sum = 0
for (int i = 0; i < 13; i++){
if( i == 6) {
continue;
}
sum += chkArr[i] + integer.parseint(JuminNumber.substring(i, (i+1)));
}
int num = 11 - (sum % 11);
num = num % 10;
if(num == Integer.parseInt(juminNumber.substring(13))){
return true;
} else {
return false;
}
}
2번째 자바 코드
import java.io.BufferedReader;
import java.io.InputStreamREader;
import java.io.IOException;
public class Test101
{
public static void main(String[] args) throws IOException
{
BufferedREader br = new BufferedREader(new InputStreamREader(System.in));
String str;
int[] chk = {2, 3, 4, 5, 6, 7, 0, 8, 9, 2, 3, 4, 5};
int tot = 0;
System.out.print("주민번호 입력(xxxxxx-xxxxxxx) : ");
str = br.readLine();
if(str.length() != 14)
{
System.out.println(">> 입력오류");
return;
}
1.아래 각 인덱스에 해당하는 값을 곱하여 모두 합칩니다.
합계 = (a2 + b3 + c4 + d5 + e6 + f7 + g8 + h9 + i2 + j3 + k4 + l5)
11 - ((a2 + b3 + c4 + d5 + e6 + f7 + g8 + h9 + i2 + j3 + k4 + l5) % 11))
11 - ((a2 + b3 + c4 + d5 + e6 + f7 + g8 + h9 + i2 + j3 + k4 + l5) % 11)) % 10