문제
- 키보드로 주민번호를 입력받아 생년월일과 성별을 계산하여 출력하는 프로그램 작성
- 주민번호는 7번째 자리에 [-] 문자가 존재햐도록 입력 처리
- 비정상적인 주민번호가 입력된 경우 에러메세지를 출력하고 재입력 되도록 처리
- ex) 주민번호[ex.901225-1234567] >> 000101-4567890
- [결과] 생년월일 = 2000년 01월 1일, 성별 = 여자
PersonNumberApp
import java.util.Scanner;
public class PersonNumberApp {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String number;
while(true){
System.out.print("주민번호[ex.901225-1234567] >> ");
number = sc.nextLine().trim();
if(number.length() == 14 && number.charAt(6) == '-') break;
if(number.length() == 14 && number.indexOf("-") == 6) break;
System.out.println("[에러] 형식에 맞게 주민번호를 다시 입력해주세요");
}
sc.close();
String separation = number.substring(7,8);
String birthday = "";
if(separation.equals("1") || separation.equals("2")){
birthday += "19";
} else if (separation.equals("3") || separation.equals("4")){
birthday += "20";
}
birthday += number.substring(0,2) + "년 ";
birthday += number.substring(2,4) + "월 ";
birthday += number.substring(4,6) + "일 ";
String gender = "";
if(separation.equals("1") || separation.equals("3")){
gender = "남자";
} else if (separation.equals("2") || separation.equals("4")){
gender = "여자";
}
System.out.println("생년월일 = " + birthday + ", 성별 = " + gender);
}
}