Computer >> 컴퓨터 >  >> 프로그래밍 >> C#

C#으로 문자열의 대문자와 소문자 개수 세는 방법

C#으로 문자열의 대문자와 소문자 개수 세는 방법

프로그래밍을 하다 보면 문자열에 포함된 대문자와 소문자의 개수를 각각 세어야 하는 경우가 종종 있습니다. C#에서는 간단한 조건문과 반복문을 활용해 이 작업을 손쉽게 처리할 수 있습니다. 이 글에서는 기본 원리부터 실전 예제까지 자세히 살펴보겠습니다.

대문자 판별 조건

문자열에서 대문자를 세려면 다음 조건을 사용합니다.

myStr[i] >= 'A' && myStr[i] <= 'Z'

이 조건은 현재 문자가 ASCII 코드상 'A'(65)부터 'Z'(90) 사이에 있는지 확인하는 방식입니다.

소문자 판별 조건

마찬가지로 소문자를 세려면 아래 조건을 사용합니다.

myStr[i] >= 'a' && myStr[i] <= 'z'

이 조건은 현재 문자가 'a'(97)부터 'z'(122) 사이에 있는지 검사합니다.

전체 예제 코드

다음 예제는 주어진 문자열에서 대문자와 소문자의 개수를 각각 계산하는 전체 코드입니다. 직접 실행해 보면서 동작을 확인해 보세요.

using System;

public class Demo {
    public static void Main() {
        string myStr;
        int i, len, lower_case, upper_case;

        myStr = "Hello";
        Console.Write("String: " + myStr);

        lower_case = 0;
        upper_case = 0;
        len = myStr.Length;

        for(i = 0; i < len; i++) {
            if(myStr[i] >= 'a' && myStr[i] <= 'z') {
                lower_case++;
            } else if(myStr[i] >= 'A' && myStr[i] <= 'Z') {
                upper_case++;
            }
        }

        Console.Write("\nCharacters in lowercase: {0}\n", lower_case);
        Console.Write("Characters in uppercase: {0}\n\n", upper_case);
    }
}

실행 결과

String: Hello
Characters in lowercase: 4
Characters in uppercase: 1

코드 동작 원리

위 예제에서는 "Hello"라는 문자열을 사용했습니다. for 반복문을 통해 문자열의 각 문자를 하나씩 검사하며, 소문자 범위('a'~'z')에 해당하면 lower_case 변수를, 대문자 범위('A'~'Z')에 해당하면 upper_case 변수를 1씩 증가시킵니다.

"Hello"는 소문자 4개(e, l, l, o)와 대문자 1개(H)로 구성되어 있으므로 위와 같은 결과가 출력됩니다.

추가 팁: char.IsUpper()와 char.IsLower() 메서드 활용

C#에서는 비교 연산자 대신 내장 메서드를 사용할 수도 있습니다. char.IsUpper()char.IsLower() 메서드를 활용하면 코드가 더욱 직관적이고 가독성이 좋아집니다.

if(char.IsLower(myStr[i])) {
    lower_case++;
} else if(char.IsUpper(myStr[i])) {
    upper_case++;
}

두 방식 모두 동일한 결과를 반환하지만, 내장 메서드를 사용하면 유니코드 문자까지 고려한 안정적인 판별이 가능하다는 장점이 있습니다. 상황에 맞게 적절한 방법을 선택해 사용하시기 바랍니다.