본문 바로가기
java&eclipse 코딩 알고리즘/20231207

JuminNoCheckTest3

by 몽상크리에이터 2023. 12. 15.

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