Notice
Recent Posts
Recent Comments
Link
«   2025/03   »
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
Archives
Today
Total
관리 메뉴

개발자

[JAVA 8일차] sum/대,소문자,특수문자 개수 알아오기/계좌번호 유효성검사 본문

개발자/JAVA

[JAVA 8일차] sum/대,소문자,특수문자 개수 알아오기/계좌번호 유효성검사

GoGo개발 2022. 8. 16. 19:37
sum

 

<1~10 까지의 합 구하기>

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
String str = "";
        int sum = 0;
        
        
        /*
            "1+"
            "1+" + "2+"  
            "1+" + "2+" + "3+"
            -----------------
            
            "1+2+3+4+5+6+7+8+9+10+"
         */
        for(int i=1; i<=10; i++) {
            if(i < 10)
                str += i+"+";  // str = ""+1+"+";
                               // str = "1"+2+"+";
                               // str = "12"+3+"+";
                               // str = "123"+4+"+";
                               // ..............
                               
            else {
                str+=i;  // str = "1+2+3+4+5+6+7+8+9+"10;
            }    
                               
            
            sum+=i; // sum = 0+1; sum=sum+i;
                        // sum = 1+2;
                               // sum = 1+2+3;
                               // ............
                               // sum= 1+2+3+4+5+6+7+8+9+10
            
                
                
        }// end of for---------------------------
        
        
        
        // str ==> 1+2+3+4+5+6+7+8+9+10
        // sum ==> 1부터 10 까지 누적의 합 ==>55
        System.out.println(str+"="+sum);
        
        
        /*
             1+2+3+4+5+6+7+8+9+10=55
             
         */
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
 
        /*
          >> 누적해야할 시작 숫자 => 2엔터
          >> 누적해야할 마지막 숫자 => 10엔터
          >> 2+3+4+5+6+7+8+9+10=54 
         */
 
        Scanner sc = new Scanner(System.in);
        
        String str = "";
        int sum = 0;
        
        for(;;) {
            
            try {
                System.out.println(">> 누적해야할 시작 숫자 =>");
                int startNo = Integer.parseInt(sc.nextLine()); // 1엔터 2엔터 강아지엔터  5엔터
                
                System.out.println(">> 누적해야할 시작 숫자 =>");
                int endNo = Integer.parseInt(sc.nextLine()); //   10엔터 5엔터 고양이엔터 2엔터  (2,5는 가능 5,2는 불가능)
                
                int cnt = endNo - startNo + 1// 반복해야할 횟수
                
                if(cnt <= 0) {
                    System.out.println("[경고] 누적해야할 마지막 숫자는 시작 숫자보다 같거나 커야 합니다.!!\n");    
                }
                else {
                    
                    for(int i=0, j=startNo; i<cnt; i++, j++) { //누적치를 구해주기
                        
                        if( i < cnt-1 ) //cnt-1=3
                            str +=j+"+";   // str = ""+2+"+";
                                           // str = "2+"+3+"+";
                                           // str = "2+3+"+4+"+";
                        else // 맨마지막
                            
                            str += j;     // str = "2+3+4+"+5;
                        
                        sum += j;
                        
 
                    
                    }// end of for---------------------------
                }
                
                break;
                
            } catch (NumberFormatException e) {
                System.out.println("[경고] 정수로만 입력하세요!!\n");
            }
        } // end of for--------------------------
        
        System.out.println(str+"="+sum);
        // 1+2+3+4+5+6+7+8+9+10
        // 1+2+3+4+5=14
        // 3+4+5+6 =18
        
        
        
        
        sc.close();
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
canner sc = new Scanner(System.in);
        
        String str = "";
        
        int sum = 0;
        
        for(;;) {
            
            try {
            System.out.println("시작할 숫자를 입력하세요 : ");
            
            int start_No = Integer.parseInt(sc.nextLine());
            
            System.out.println("마지막 숫자를 입력하세요 : ");
            
            int end_No = Integer.parseInt(sc.nextLine());
            
            int cy_No = end_No - start_No + 1// sum 해줄 횟수 
            
            if (cy_No <= 0) {
                System.out.println("마지막 숫자가 시작할 숫자보다 작을 수 없습니다.");
            }
            
            
            else {
                for(int i=start_No; i<=cy_No; i++) {
                    
                    if(i<cy_No) {
                    
                    str += i+"+"
                    }
                    
                    else
                        str += i;
                    
                    sum += i;    
                }// end of for
            }
            
            break;
            
            
            }catch (NumberFormatException e) {
                System.out.println("정수를 입력하세요");
            }
            
        
        }// end of for----
        
    
        System.out.println(str+"="+sum);
        
        sc.close();
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
65
66
67
68
69
70
71
72
73
74
        /*
          >> 첫번째 정수 => 3
          >> 두번째 정수 => 9
          
          >> 결과 <<
          3부터 9까지의 홀수들만의 합 : 24
          3부터 9까지의 짝수들만의 합 : 18 
         */
        
        
        
        Scanner sc = new Scanner(System.in);
        
        int num1=0, num2=0, hol_sum=0, jjak_sum=0;
 
        
        
        for(;;) {
            
            try {
                System.out.println(">> 첫번째 정수 => ");
                num1 = Integer.parseInt(sc.nextLine()); // 1   2   3
                
                System.out.println(">> 두번째 정수 => ");
                num2 = Integer.parseInt(sc.nextLine()); // 10  10  10
                
                int holsu=0, jjaksu=0;
                
                //첫번째 정수가 홀수인지 짝수인지 알아오자.
                if(num1%2 !=0) {    //첫번째 정수가 홀수인 경우
                    holsu = num1;   // holsu = 1;
                    jjaksu = num1+1;// jjaksu =1+1;
                    
                }
                else {            // 첫번째 정수가 짝수인 경우 
                    holsu=num1+1// holsu = 2+1;
                    jjaksu=num1;  // jjaksu = 2;
                }
                // 홀수 및 짝수의 합을 구한다.
                for(;;) {
                                           //       num=1;  num2=10;     num1=2;    num2=10;    num1=3;    num2=10;
                    if(holsu <= num2 )       //홀수의 합     1+3+5+7+9    11        3+5+7+9         11     3+5+7+9       11
                       hol_sum += holsu;
                                         
                    if(jjaksu <= num2)     //짝수의 합     2+4+6+8+10    12        2+4+6+8+10     12        4+6+8+10      12
                       jjak_sum += jjaksu;
                    
                    holsu += 2;
                    jjaksu += 2;
                    
                    if(holsu > num2 && jjaksu > num2) {
                        break;
                    }
                        
                }// end of for---------------------------
                
                
                
                break;
                
            }catch(NumberFormatException e) {
                System.out.println("[경고] 정수만 입력하세요!!\n");
                
            }
            
        }// end of for-------------------------------
        
        
        System.out.println("\n >>결과 <<\n"
                          +num1+"부터"+num2+"까지의 홀수들만의 합 : " + hol_sum +"\n" 
                          +num1+"부터"+num2+"까지의 짝수들만의 합 : " + jjak_sum+"\n" );
        
        
        sc.close();
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
 
        String word = "Abz3Sa0#$T";
     
        int wordLenght = word.length();
        
        int upperCnt=0, lowerVnt=0, digitCnt=0, specialCnt=0// 지역변수라 초기화필요
        
        int lowerCnt=0;
        
        for(int i=0; i<wordLenght; i++) {
            char ch = word.charAt(i); //글자하나 불러오기
            
            if( Character.isUpperCase(ch)) {
                upperCnt++//3
            }
            else if( Character.isLowerCase(ch)) {
                lowerCnt++//3
            }
            else if(Character.isDigit(ch)) {
                digitCnt++// 2
            }
            else
                specialCnt++//2
        
        }//end of for--------------
            
        
        
        System.out.println(word+"\n"
                           +"전체길이 : " + wordLenght + "\n"
                           +"대문자 개수 : " + upperCnt + "\n"
                           +"소문자 개수 : " + lowerCnt + "\n"
                           +"숫자 개수 : " + digitCnt + "\n"
                           +"특수문자 개수 : " + specialCnt + "\n");
        /*
          Abz3Sa0#$T"
          전체길이 : 10
          대문자 개수 : 3
          소문자 개수 : 3 
          숫자 개수 : 2
          특수문자 개수 : 2
          
          
        */
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
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
//field
    String account_number;    //통장계좌번호
    String name;            //예금주
    
    //method
    void register_account(Scanner sc){
        
        for(;;) {
            
            //////////************ 통장번호 입력 시작 *******************************************//////
            
            System.out.print("1. 통장번호 입력(-를 뺀 숫자 10자리만 입력하세요 => ");
            String account_number = sc.nextLine(); //지역변수라서 위의 account랑은 다름
            
            // account_number 에 입력된 값이 "100-2345-567" 이라면 - 를 뺀 값이 "1002345678" 이므로 O.K
            
            // account_number 에 입력된 값이 "10S-2345-567" 이라면 - 를 뺀 값이 "10p2345678" 이므로 꽝!!
            // account_number 에 입력된 값이 "100-2345-6789" 이라면 -를 뺀 값이 "10023456789" 이므로 꽝!!
            // account_number 에 입력된 값이 "100-2345" 이라면 -를 뺀 값이 "1002345" 이므로 꽝!!        
            
            // account_number 에 입력된 값이 "1002345678" 이라면 -를 뺸 값이 "1002345678"이므로 O.K
            
            String str = "";
            
            for(int i=0; i<account_number.length(); i++) {
                
                char ch = account_number.charAt(i);
                
                if(ch != '-') {
                    str += ch; // str = "" + '1';   str =  "1"
                               // str = "1" + '0';  str =  "10"
                               // str = "10" + '0;' str = "100"    
                               // str = "100" + '2' str = "1002
                }
                          
                 
            }//end of for----------------------------------------
            
            if ( str.length() !=10) {   //"10023456789"(11글자) 
                                         //"1002345"(7글자) 
                                         
                
                System.out.println("\n[경고] 통장번호 형식에 맞지 않습니다.");
                
            }
            else {  // "1002345678"(10글자
                    // "10p2345678"(10글자)    모든것이 숫자로 이루어지지 않았으므로 꽝!!
                    // "1002345678"(10글자))
                
                boolean isUseAccount = true;
                
                for(int i=0; i<10; i++) {
                    char ch = str.charAt(i);
                    if!Character.isDigit(ch)) { //숫자가 아니라면
                        isUseAccount = false;    
                        
                        break;                    //위의 for문을 빠져나와야 한다.
                    }
                }//end of for-------------------------
                
                if!isUseAccount ) { //!붙이면 isUseAccout 쓸수 없다면을 가정한것
                    System.out.println("\n[경고] 통장번호 형식에 맞지 않습니다.");
                }
                else {
                    this.account_number = str; //필드에 넣을때 대시(-) 다 뺀 str을 넣어준다
                    System.out.println(">> 통장번호 개설 완료함 << ");
                    break;
                    
                }
                
                
                 /*if(isUseAccount){ //! 안붙이면 이렇게써야함 개발자 마음이다
                 this.account_number = str; //필드에 넣을때 대시(-) 다 뺀 str을 넣어준다
                    System.out.println(">> 통장번호 개설 완료함 << ");
                    break;
                 }
                 else {
                    System.out.println("\n[경고] 통장번호 형식에 맞지 않습니다람쥐.");
                    
                }*/
                 
                  
                 
                
            }///end of else
            
            
            ////************************ 통장번호 입력 끝 **************************//////
            
        }//end of for(;;)------------------------------------------------------
        
        System.out.print("2. 예금주 입력 => ");
        String name = sc.nextLine();
        this.name = name;
        
        
        
        
        // System.out.println("\n>> 통장번호 개설 완료함 << "); //for문쓸때 뭐 안써놓으면 오류 안떠서 break 안쓴줄 모름 
        
    }// end of void register_account(Scanner sc)-------------
    
    void showInfo() {
        System.out.println("\n1.통장계좌번호 : " + account_number + "\n"
                          +"2. 예금주 : " + name) ;
    }// end of showInfp()------------------------------------------------------
cs