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

C#에서 문장의 각 단어 첫 글자를 대문자로 변환하는 방법

C#에서는 ToCharArray() 메서드와 간단한 문자 연산을 활용해 문장에 포함된 각 단어의 첫 글자만 대문자로 바꾸고, 나머지 글자는 소문자로 정리할 수 있습니다. 이번 글에서는 그 구현 과정을 단계별로 살펴보겠습니다.

1단계: 변환할 문자열 준비하기

먼저 다음과 같은 문자열이 있다고 가정해 보겠습니다.

String str = "Welcome to our website!";

2단계: 문자열을 char 배열로 변환하기

ToCharArray() 메서드를 사용하면 문자열을 문자(char) 배열로 손쉽게 변환할 수 있습니다. 배열 형태로 만들어야 각 문자에 개별적으로 접근하여 값을 수정할 수 있습니다.

char []ch = str.ToCharArray();

3단계: 첫 글자를 대문자로 변환하기

소문자 범위('a'~'z')에 속하는 문자라면 'a'와 'A'의 아스키 코드 차이를 이용해 대문자로 바꿀 수 있습니다.

if (ch[i] >= 'a' && ch[i] <= 'z') {
   // 대문자로 변환
   ch[i] = (char)(ch[i] - 'a' + 'A');
}

전체 예제 코드

아래 전체 코드를 실행하면 문장의 각 단어 첫 글자만 대문자로, 나머지는 소문자로 변환된 결과를 확인할 수 있습니다.

using System;
class Demo {
   static String MyApplication(String str) {
      char []val = str.ToCharArray();
      for (int i = 0; i < str.Length; i++) {
         if (i == 0 && val[i] != ' ' ||
            val[i] != ' ' && val[i - 1] == ' ') {
            if (val[i] >= 'a' && val[i] <= 'z') {
               val[i] = (char)(val[i] - 'a' + 'A');
            }
         } else if (val[i] >= 'A' && val[i] <= 'Z')
            val[i] = (char)(val[i] + 'a' - 'A');
      }
      String s = new String(val);
      return s;
   }
   public static void Main() {
      String str = "Welcome to our website!";
      Console.Write(MyApplication(str));
   }
}

코드 동작 원리

  • 현재 문자가 문장의 맨 앞이거나 바로 앞 문자가 공백이라면, 그 문자는 단어의 첫 글자입니다.
  • 첫 글자가 소문자라면 대문자로 변환합니다.
  • 그 외 위치에 있는 대문자는 모두 소문자로 변환합니다.
  • 마지막에는 수정된 char 배열을 new String()으로 다시 문자열로 만들어 반환합니다.

실행 결과

Welcome To Our Website!