C#에서 문자열을 여러 개의 값으로 나누어야 할 때 구분자(Delimiter)를 활용하면 간편하게 처리할 수 있습니다. 구분자란 문자열 안에서 각 항목을 구분해 주는 문자를 의미하며, 가장 흔한 예가 쉼표(,)입니다.
구분자란 무엇인가?
예를 들어 아래 문자열에는 두 개의 쉼표가 포함되어 있으며, 이 쉼표가 바로 구분자 역할을 합니다.
string str = "Welcome,to,New York";
구분자 설정하기
먼저 분할에 사용할 구분자를 char 배열 형태로 따로 정의합니다.
char[] newDelimiter = new char[] { ',' };Split() 메서드로 문자열 분할하기
이후 Split() 메서드를 호출하고, 앞서 정의한 구분자를 매개변수로 전달하면 됩니다.
str.Split(newDelimiter, StringSplitOptions.None);
여기서 StringSplitOptions.None은 빈 문자열도 결과 배열에 그대로 포함하겠다는 의미입니다. 만약 연속된 구분자 사이의 빈 항목을 제거하고 싶다면 StringSplitOptions.RemoveEmptyEntries를 사용하면 됩니다.
전체 예제 코드
아래는 위 과정을 하나로 정리한 완전한 실행 예제입니다.
using System;
class Program {
static void Main() {
string str = "Welcome,to,New York";
char[] newDelimiter = new char[] { ',' };
string[] arr = str.Split(newDelimiter, StringSplitOptions.None);
foreach (string val in arr) {
Console.WriteLine(val);
}
}
}실행 결과
Welcome to New York
실행 결과를 보면 원본 문자열이 쉼표를 기준으로 세 개의 부분 문자열로 나뉘어 각각 출력된 것을 확인할 수 있습니다. 이처럼 Split() 메서드와 구분자 배열만 활용하면 CSV 데이터 파싱 등 다양한 상황에서 손쉽게 문자열을 분리할 수 있습니다.