C# 프로그래밍을 하다 보면 문장에 포함된 각 단어의 첫 글자(이니셜)만 추출해야 하는 경우가 종종 있습니다. 예를 들어 "Never Give Up!"이라는 문자열에서 N, G, U만 뽑아내는 것이죠. 이번 글에서는 Split()과 Substring() 메서드를 활용해 이 작업을 간단하게 처리하는 방법을 알아보겠습니다.
1. 기본 아이디어
먼저 다음과 같은 문자열이 있다고 가정해 보겠습니다.
string str = "Never Give Up!";
각 단어의 첫 글자를 얻으려면 두 단계를 거치면 됩니다.
- Split() 메서드로 문자열을 공백 기준으로 나누어 단어 배열을 만듭니다.
- Substring(0, 1) 메서드로 각 단어의 첫 번째 문자만 잘라냅니다.
2. 전체 예제 코드
아래는 위 로직을 실제로 구현한 완전한 C# 코드입니다.
using System;
public class Program {
public static void Main() {
string str = "Never Give Up!";
Console.WriteLine("Initial String= " + str);
Console.WriteLine("Displaying first letter of each word...");
string[] strSplit = str.Split();
foreach (string res in strSplit) {
Console.Write(res.Substring(0, 1));
}
}
}코드 설명
str.Split(): 문자열을 공백 문자를 기준으로 분리하여string[]배열을 반환합니다. 결과적으로 { "Never", "Give", "Up!" } 세 개의 요소가 생성됩니다.foreach반복문: 배열의 각 단어를 순서대로 하나씩 가져옵니다.res.Substring(0, 1): 각 단어에서 인덱스 0부터 1개의 문자, 즉 첫 글자만 추출합니다.Console.Write(): 줄바꿈 없이 이어서 출력하기 위해 WriteLine 대신 Write를 사용했습니다.
3. 실행 결과
위 코드를 실행하면 다음과 같은 출력을 확인할 수 있습니다.
Initial String= Never Give Up! Displaying first letter of each word... NGU
4. 참고 사항
실무에서는 몇 가지 추가로 고려할 점이 있습니다.
- 빈 문자열 방지: 연속된 공백이 있으면 빈 요소가 생길 수 있으므로,
str.Split(' ', StringSplitOptions.RemoveEmptyEntries)옵션을 사용하면 더 안전합니다. - null 검사: 입력 문자열이 null일 가능성이 있다면 처리 전에 반드시 확인하세요.
이처럼 Split()과 Substring()만으로도 간단히 각 단어의 이니셜을 추출할 수 있습니다. 이름 약자 표기, 목차 생성 등 다양한 상황에서 유용하게 활용해 보세요.