주민등록번호 입력 

jumin="901230-1837264" 로 입력받음


Q1. 정확히 입력했는지 확인(자릿수 확인, -입력확인)

Q2. 생년월일 출력

Q3. 성별을 확인하고 출력

Q4. 미성년자 확인

Q5. 나이 출력

Q6. 정확히 입력했는지 확인(공백처리, 정확한 숫자입력확인)


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
import java.util.Scanner;
 
public class Ex02 {
 
    static String myNum;
    public static void main(String[] args) {
        
        Scanner sc = new Scanner(System.in);
        
        for(int i=0;i<5;i++){
            System.out.print("주민등록번호 입력(000000-0000000): ");
            myNum = sc.nextLine().trim();    //앞뒤 공백 제거
            
            String err = "정확하지가 않습니다.다시 입력해주세요";
            if(myNum.indexOf("-")!=6 || myNum.length()!=14){        //6번째 자리에 '-'가 없거나 총길이가 14개가 아니면 오류
                System.out.println(err);
            }else if(Integer.parseInt(myNum.substring(2,4))>12 || Integer.parseInt(myNum.substring(4,6))>31){    //월 12이상,일 31이상 일경우 오류
                System.out.println(err);
            }else if(Integer.parseInt(myNum.substring(7,8))>6){        //성별을 나타내는 숫자가 6이상이면 오류
                System.out.println(err);
            }
            else{
                birth();    //생년월일
                mf();        //성별
                bebe();        //미성년자 & 나이
                break;
            }
            if(i==4){
                System.out.println("종료합니다. 정확히 확인 후 다시 이용해 주십시오.");
            }
        }
    }//main end
    
    public static void birth(){    //생년월일 출력
        int y = 0;
        System.out.print("생년월일: ");
        System.out.println(myNum.substring(0,2)+"년"+myNum.substring(2,4)+"월"+myNum.substring(4,6)+"일");
    }//birth end
    
    public static void mf(){    //성별
        char c = myNum.charAt(7);
        
        System.out.print("성별: ");
        if(c=='1'||c=='3'){
            System.out.println("남자");
        }else if(c=='2'||c=='4'){
            System.out.println("여자");
        }else{
            System.out.println("외국인");
        }
    }//mf end
    
    public static void bebe(){        //미성년자확인 & 나이 출력
        int age = Integer.parseInt(myNum.substring(0,2));
                
        if(age<=16){
            age = Integer.parseInt(20+myNum.substring(0,2));    //년도가 16년보다 작으면 2000년대 출생
        }else{
            age = Integer.parseInt(19+myNum.substring(0,2));    //년도가 16년보다 크면 1900년대 출생
        }
        
        age = 2016-age+1;
        if(age>=19){
            System.out.println("성년 입니다.");
        }else{
            System.out.println("미성년자 입니다.");
        }
        System.out.println("나이: "+age);
    }//bebe end
}//class end
cs


결과

다른방법

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
import java.util.Scanner;
 
public class Ex02 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        String input=null;
        int cnt =0;
        boolean ck = false;
        while(cnt++<5){
            System.out.println("주민번호를 입력해주세요");
            System.out.println("\tex)901230-1837264");
            System.out.print(">>");
            input = sc.nextLine().trim();
            for(int i=0; i<input.length(); i++){
                if(i==6){continue;}
                switch (input.charAt(i)) {
                    case '0'case '1'case '2'case '3'case '4'
                    case '5'case '6'case '7'case '8'case '9':
                        if(i==0){ck=true;}else{ck = ck&&true;} break;
                    default : ck=false;
                } 
            }
            if(ck&&input.length()==14&&input.charAt(6)=='-'){break;}
            System.out.println(cnt+"회 입력이 잘못되셨습니다");
            if(cnt==5){return;}
            System.out.println("확인후 재입력 바랍니다\t");
        }
        System.out.println("당신의 생년월일:");
        String[] st = {"년","월","일"};
        String[] st2 = {"","",""};
        for(int i=0; i<6; i++){
            st2[i/2]+=input.charAt(i);
        }
        for(int i=0; i<st2.length; i++){
            st2[i]+=st[i];
        }
        for(int i=0; i<st2.length; i++){
            System.out.print(st2[i]);
        }
        System.out.println();
        System.out.print("당신의 성별은 ");
        if(input.charAt(7)=='1'){
            System.out.print("남자");
        }else if(input.charAt(7)=='2'){
            System.out.print("여자");
        }else{
            System.out.print("외계인");
        }
        System.out.println("입니다");
        int age=0;
        if(input.charAt(0)=='0'){
            age = 2016-(2000+(input.charAt(1)-'0'))+1;
        }else if(input.charAt(0)==1){
            age = 2016-(2000+10+(input.charAt(1)-'0'))+1;
        }else{
            age = 2016-(1900+(input.charAt(0)-'0')*10+(input.charAt(1)-'0'))+1;
        }
        System.out.println("당신의 나이는 "+age+"세 입니다");
        if(age<19){
            System.out.println("미성년자이시네요 담배,술 금지 입니다");
        }
    }
 
}
cs

결과


'* Programming > JAVA' 카테고리의 다른 글

DAY14 Lotto(객체지향)  (0) 2016.07.25
DAY14 StringBuffer  (0) 2016.07.21
DAY13 String 2  (0) 2016.07.21
DAY13 String 1  (0) 2016.07.21
DAY13 학생 성적관리 프로그램  (0) 2016.07.21

13일차 강의 정리


String st1="java";    //선언


1. hashCode() - value 를 참조하기 위한 Key가 되는 유일한 값

소스 - System.out.println(st1.hashCode());   

결과 - 3254818

2. indexOf("a",2) - 2의 위치 부터 시작해서 a를 찾아 자리번호를 출력, 문자가 없으면 -1이 출력

소스 - System.out.println(st1.indexOf("a",2));

결과 - 3

3. isEmpty() - st1이 비어있는지 확인

소스 - System.out.println(st1.isEmpty());

결과 - false

4. matches("java") - 매치 하는지 확인

소스 - System.out.println(st1.matches("java"));

결과 - true

5. replace('a', 'b') - 재배치 a->b로 바꿔준다

소스 - System.out.println(st1.replace('a', 'b'));

결과 - jbvb

6. replaceFirst("a", "b") - 첫번째 a만 바꿔준다

소스 - System.out.println(st1.replaceFirst("a", "b"));

결과 - jbva

7. substring(2) - 자리번호 2부터 출력(0부터 시작)

소스 - System.out.println(st1.substring(2));

결과 - va

8. substring(0,3) - 자리번호 0부터 3까지 출력

소스 - System.out.println(st1.substring(0,3));

결과 - jav

9. toCharArray() - 한글자씩 가져온다

소스 -    char[] ch = st1.toCharArray();

for(int i=0;i<ch.length;i++){

System.out.println(ch[i]);

}

결과 -    j

a

v

a


String st2 = "   ab cd EFG ";


10. toLowerCase() - 모두 소문자로

11. trim() - 문자의 앞뒤 공백 제거

소스 - System.out.println(st2.toLowerCase().trim());

결과 - ab cd efg

12. toUpperCase() - 모두 대문자로

소스 - System.out.println(st2.toUpperCase()); (공백제거 없음)

결과 -    AB CD EFG 

13. valueOf(i) - i=정수, 정수를 문자열로변경

소스 - int i = 100;

String a = String.valueOf(i)+1;

System.out.println(a);

결과 - 1001

'* Programming > JAVA' 카테고리의 다른 글

DAY13 주민등록번호로 신분확인  (0) 2016.07.21
DAY13 String 2  (0) 2016.07.21
DAY13 학생 성적관리 프로그램  (0) 2016.07.21
DAY12 Lotto구매하기 결과발표(static메소드)  (0) 2016.07.21
JAR로 export 하기  (0) 2016.07.19

+ Recent posts