String.Split 메서드는 하나 이상의 구분 기호를 기준으로 입력 문자열을 분할하여 부분 문자열 배열을 만듭니다. 이 메서드는 종종 단어 경계에서 문자열을 분리하는 가장 쉬운 방법입니다.
참고
이 문서의 C# 예제는 Try.NET 인라인 코드 러너 및 놀이터에서 실행됩니다. 대화형 창에서 예제를 실행하려면 실행 버튼을 선택합니다. 코드를 실행하면 실행을 다시 선택하여 코드를 수정하고 수정된 코드를 실행할 수 있습니다. 수정된 코드는 대화형 창에서 실행되거나, 컴파일이 실패하면 대화형 창에 모든 C# 컴파일러 오류 메시지가 표시됩니다.
팁 (조언)
AI 지원을 사용하여 GitHub Copilot를 사용하여 문자열을 분할할 수 있습니다.
문자열을 단어로 분할
다음 코드는 공통 어구를 각 단어에 대한 문자열의 배열로 나눕니다.
string phrase = "The quick brown fox jumps over the lazy dog.";
string[] words = phrase.Split(' ');
foreach (var word in words)
{
Console.WriteLine($"<{word}>");
}
구분 문자의 모든 인스턴스는 반환된 배열에 값을 생성합니다. C#의 배열은 제로 인덱싱되므로 배열의 각 문자열은 0에서 Array.Length 속성에서 반환된 값에서 1을 뺀 값으로 인덱싱됩니다.
string phrase = "The quick brown fox jumps over the lazy dog.";
string[] words = phrase.Split(' ');
for (int i = 0; i < words.Length; i++)
{
Console.WriteLine($"Index {i}: <{words[i]}>");
}
String.Split는 다양한 오버로드 기능을 가지고 있습니다. 이러한 오버로드는 문자열 분할 동작을 사용자 지정합니다.
- 구분 기호를
char
값 또는string
값으로 지정할 수 있습니다. - 하나의 구분 기호 또는 여러 구분 기호를 지정할 수 있습니다. 여러 구분 기호를 지정하는 경우 모두 동일한 형식(또는
char
string
)이어야 합니다. - 반환할 최대 부분 문자열 수를 지정할 수 있습니다.
- 반복된 구분 기호 문자가 무시되는지 여부를 지정하거나 반환 값에 빈 부분 문자열을 생성할 수 있습니다.
- 반환된 부분 문자열에서 선행 및 후행 공백이 제거되는지 여부를 지정할 수 있습니다.
나머지 예제에서는 서로 다른 오버로드를 사용하여 이러한 각 동작을 표시합니다.
여러 구분 기호 지정
String.Split은 다중 구분 문자를 사용할 수 있습니다. 다음 예제에서는 공백, 쉼표, 마침표, 콜론 및 탭을 구분 문자로 사용하며, 해당 문자는 Split의 배열로 전달됩니다. 코드 맨 아래의 루프는 반환된 배열의 각 단어를 표시합니다.
char[] delimiterChars = [' ', ',', '.', ':', '\t'];
string text = "one\ttwo three:four,five six seven";
Console.WriteLine($"Original text: '{text}'");
string[] words = text.Split(delimiterChars);
Console.WriteLine($"{words.Length} words in text:");
foreach (var word in words)
{
Console.WriteLine($"<{word}>");
}
연속되는 모든 구분 기호의 인스턴스는 출력 배열에 빈 문자열을 생성합니다.
char[] delimiterChars = [' ', ',', '.', ':', '\t'];
string text = "one\ttwo :,five six seven";
Console.WriteLine($"Original text: '{text}'");
string[] words = text.Split(delimiterChars);
Console.WriteLine($"{words.Length} words in text:");
foreach (var word in words)
{
Console.WriteLine($"<{word}>");
}
String.Split은 문자열 배열(단일 문자 대신 대상 문자열을 구문 분석하는 구분 기호 역할을 하는 문자 시퀀스)을 사용할 수 있습니다.
string[] separatingStrings = ["<<", "..."];
string text = "one<<two......three<four";
Console.WriteLine($"Original text: '{text}'");
string[] words = text.Split(separatingStrings, StringSplitOptions.RemoveEmptyEntries);
Console.WriteLine($"{words.Length} substrings in text:");
foreach (var word in words)
{
Console.WriteLine(word);
}
출력 크기 제한
다음 예제에서는 원본 문자열의 처음 네 개의 부분 문자열로 출력을 제한하는 방법을 보여 줍니다.
string phrase = "The quick brown fox jumps over the lazy dog.";
string[] words = phrase.Split(' ', 4, StringSplitOptions.None);
foreach (var word in words)
{
Console.WriteLine($"<{word}>");
}
빈 부분 문자열 제거
연속된 구분 문자는 반환된 배열의 값으로 빈 문자열을 생성합니다. 공백 문자를 구분 기호로 사용하는 다음 예제에서 빈 문자열을 만드는 방법을 확인할 수 있습니다.
string phrase = "The quick brown fox jumps over the lazy dog.";
string[] words = phrase.Split(' ');
foreach (var word in words)
{
Console.WriteLine($"<{word}>");
}
이 동작은 표 형식 데이터를 나타내는 쉼표로 구분된 값(CSV) 파일과 같은 형식을 더 쉽게 만듭니다. 연속된 쉼표는 빈 열을 나타냅니다.
반환된 배열에 빈 문자열을 제외하기 위해 선택적인 StringSplitOptions.RemoveEmptyEntries 매개 변수를 전달할 수 있습니다. 반환된 컬렉션의 더 복잡한 처리를 위해 LINQ를 사용하여 결과 시퀀스를 조작할 수 있습니다.
공백 자르기
다음 예제에서는 항목 트리밍의 효과를 보여 립니다.
string numerals = "1, 2, 3, 4, 5, 6, 7, 8, 9, 10";
string[] words = numerals.Split(',', StringSplitOptions.TrimEntries);
Console.WriteLine("Trimmed entries:");
foreach (var word in words)
{
Console.WriteLine($"<{word}>");
}
words = numerals.Split(',', StringSplitOptions.None);
Console.WriteLine("Untrimmed entries:");
foreach (var word in words)
{
Console.WriteLine($"<{word}>");
}
트리밍되지 않은 항목에는 숫자 앞에 추가 공백이 있습니다.
GitHub Copilot를 사용하여 문자열 분할
IDE에서 GitHub Copilot를 사용하여 C#을 사용하여 String.Split
문자열을 분할하는 코드를 생성할 수 있습니다. 요구 사항에 따라 문자열 및 구분 기호를 사용하도록 프롬프트를 사용자 지정할 수 있습니다.
다음 텍스트는 Copilot 채팅의 프롬프트 예를 보여줍니다.
Generate C# code to use Split.String to split a string into substrings.
Input string is "You win some. You lose some." Delimiters are space and period.
Provide example output.
GitHub Copilot는 AI를 통해 구동되므로 예상치 못한 실수가 발생할 수 있습니다. 자세한 내용은 부조종사 FAQ참조하세요.
Visual Studio 의 GitHub Copilot와 VS Code 의 GitHub Copilot에 대해 자세히 알아보세요.
참고 항목
.NET