728x90
반응형

1. equals 이용하여 판별

2. 문자를 정수형으로 변환하여 판별

3. switch-case문을 이용하여 판별

 

 

문제

881219-1055910
881219-2132154
221219-3565456
221219-4132547
  • 주민번호를 입력받아 남자인지 여자인지 판정하여 출력하시오. (예제는 임의로 입력된 값이다.)
  • 사용자가 직접 13자리 주민번호를 입력한다. 이 때, '-'를 포함하여 입력한다.
  • 위에 예시를 입력하고, 입력 받은 주민번호를 이용해 남자인지 여자인지 구분하여 출력한다. 

 

 

1. equals 이용하여 판별

		Scanner scan=new Scanner(System.in);

		System.out.print("주민번호를 입력하세요 >> ");
		String num = scan.next();

		int idx=num.indexOf("-")+1;
		String str=num.substring(idx,idx+1);

		//str값(1,2,3,4)에 따라 남자/여자를 구분한다. 문자열은 (str == "1") 대신 equals를 이용해야 정확하게 값이 나온다.
		if(str.equals("1") || str.equals("3"))
			System.out.println("남자입니다.");
		else if(str.equals("2") || str.equals("4"))
			System.out.println("여자입니다.");
		else
			System.out.println("다시 입력해주세요.");

 

 

 

2. 문자를 정수형으로 변환하여 판별

		//str의 인덱스 값을 숫자로 변환하여 비교
		int par = Integer.parseInt(str);

		System.out.println("주민번호 첫 번째 자리 : "+par);
		if(par==1 || par==3)
			System.out.println("남자입니다.");
		else if(par==2 || par==4)
			System.out.println("여자입니다.");
		else
			System.out.println("다시 입력해주세요.");

 

 

 

3. switch-case문을 이용하여 판별

		//switch - case 문을 이용하여 출력
		switch(str){
		case "1":
		case "3":
			System.out.println("남자입니다.");
			break;
		case "2":
		case "4":
			System.out.println("여자입니다.");
			break;
		default:
			System.out.println("다시 입력해주세요.");
		}

 

 

 

출력 결과

주민번호를 입력하세요 >> 881219-1055910
남자입니다.
주민번호를 입력하세요 >> 881219-2132154
여자입니다.
주민번호를 입력하세요 >> 221219-3565456
남자입니다.
주민번호를 입력하세요 >> 221219-4132547
여자입니다.
728x90
반응형

+ Recent posts