package k20231207;

import java.util.Arrays;
import java.util.Calendar;
import java.util.Date;
import java.util.Iterator;
import java.util.Scanner;
public class JuminNoCheckTest3 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("유효성을 검사할 주민등록번호 13자리를 '-'없이 입력하세요: ");
String jumin = scanner.nextLine().trim();
// 둘리 주민번호 => 8304221185600 =>오류 8304221185601 =>정상
// 유효성 검사
String check = "234567892345"; // 가중치 문자열
int sum = 0; //가중치 합을 저장할 변수
for (int i=0; i<12; i++ ) {
// sum += (jumin.charAt(i)-'0')*(check.charAt(i)-48);
// 문자를 문자열로 변환하기
// sum += Integer.parseInt(String.valueOf(jumin.charAt(i))); //정석 String.valueOf() 인수를 문자열로 취급.
// sum += Integer.parseInt(String.format("%s", jumin.charAt(i))); //Integer.parseInt()메소드는 반드시 문자열을 인수로 취한다.
sum += Integer.parseInt( jumin.charAt(i) + "") * Integer.parseInt(check.charAt(i) + ""); //야매 //문자+문자(공백) => 문자열
}
// 11에서 가중치 합계를 11로 남은 나머지를 빼고 결과가 10이상이면 1의 자리만 취한다.
int result = (11 - sum % 11) % 10 ;
// result와 주민등록번호 마지막 자리를 비교해서 같으면 정상, 다르면 오류.
if (result == jumin.charAt(12) - '0') {
System.out.println("정상");
} else {
System.out.println("오류");
}
// System.out.println( result == jumin.charAt(12) - '0' ? "정상" : "오류");
System.out.println(sum);
System.out.println(result);
}
}
'java&eclipse 코딩 알고리즘 > 20231207' 카테고리의 다른 글
| SaUpNoCheckTest (0) | 2023.12.15 |
|---|---|
| JuminNoCheckTest5 (0) | 2023.12.15 |
| JuminNoCheckTest2 (0) | 2023.12.15 |
| JuminNoCheckTest (0) | 2023.12.15 |
| CalendarTest (0) | 2023.12.15 |