package string;
public class Main05 {
public static void main(String[] args) {
/*
* 주민번호에서 생년월일 추출하기
* ex) 800501 - 1234567 -> 1980년 05월 01일 남자
* - 1번이 성별코드
* -> 성별코드 1 or 2 : 19~
* -> 성별코드 3 or 4 : 20~
* ------------------------------------------------
* -> 성별코드 1 or 3 : 남자
* -> 성별코드 2 or 4 : 여자
*/
String num = "800501-1234567";
String sub_num = num.substring(0, 6);
String sub_num2 = num.substring(7);
int pos_num = num.indexOf("-");
int yy = 1980;
int mm = 5;
int dd = 1;
String gender = "남성";
String result
= String.format("%d년 %02d월 %02d일 %s"
, yy, mm, dd, gender);
System.out.println("생년월일 = " + sub_num);
System.out.println("뒷자리 번호 = " + sub_num2);
System.out.println("생년월일, 성별 = " + result);
//주민등록상 7번째 자리 숫자에 따라 성별나누기
//7번째 자리 찾기.. 시도는 성공 했지만..
String sub_num3 = num.substring(pos_num+1,pos_num+2);
System.out.println(sub_num3 instanceof String);
//Wrapper 중에 문자열 데이터의 형변환을 사용하여 7번째 자리를 String 으로 찾았고 int로 형변환해냈다
int m1 = Integer.parseInt(sub_num3);
if (m1==1 || m1==3) {
System.out.println("남자 입니다.");
} else if (m1 ==2 || m1==4) {
System.out.println("여자 입니다.");
} else {
System.out.println("외국인 입니다.");
}
}
}
출력값 :
true
생년월일 = 800501
뒷자리 번호 = 1234567
생년월일, 성별 = 1980년 05월 01일 남성
남자 입니다.