C#에서 String.Split을 사용하여 문자열을 분리하는 방법
String.Split 메서드는 하나 이상의 구분 기호를 기준으로 입력 문자열을 분할하여 부분 문자열 배열을 만듭니다. 이 메서드는 종종 단어 경계에서 문자열을 분리하는 가장 쉬운 방법입니다. 다른 특정 문자 또는 문자열에서 문자열을 분할하는 데도 사용됩니다.
참고 항목
이 문서의 C# 예제는 Try.NET 인라인 코드 러너 및 놀이터에서 실행됩니다. 대화형 창에서 예제를 실행하려면 실행 버튼을 선택합니다. 코드를 실행하면 실행을 다시 선택하여 코드를 수정하고 수정된 코드를 실행할 수 있습니다. 수정된 코드는 대화형 창에서 실행되거나, 컴파일이 실패하면 대화형 창에 모든 C# 컴파일러 오류 메시지가 표시됩니다.
String.Split 예제
다음 코드는 공통 어구를 각 단어에 대한 문자열의 배열로 나눕니다.
string phrase = "The quick brown fox jumps over the lazy dog.";
string[] words = phrase.Split(' ');
foreach (var word in words)
{
System.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++)
{
System.Console.WriteLine($"Index {i}: <{words[i]}>");
}
연속된 구분 문자는 반환된 배열의 값으로 빈 문자열을 생성합니다. 공백 문자를 구분 기호로 사용하는 다음 예제에서 빈 문자열을 만드는 방법을 확인할 수 있습니다.
string phrase = "The quick brown fox jumps over the lazy dog.";
string[] words = phrase.Split(' ');
foreach (var word in words)
{
System.Console.WriteLine($"<{word}>");
}
이 동작은 표 형식 데이터를 나타내는 쉼표로 구분된 값(CSV) 파일과 같은 형식을 더 쉽게 만듭니다. 연속된 쉼표는 빈 열을 나타냅니다.
반환된 배열에 빈 문자열을 제외하기 위해 선택적인 StringSplitOptions.RemoveEmptyEntries 매개 변수를 전달할 수 있습니다. 반환된 컬렉션의 더 복잡한 처리를 위해 LINQ를 사용하여 결과 시퀀스를 조작할 수 있습니다.
String.Split은 다중 구분 문자를 사용할 수 있습니다. 다음 예제에서는 공백, 쉼표, 마침표, 콜론 및 탭을 구분 문자로 사용하며, 해당 문자는 Split의 배열로 전달됩니다. 코드 맨 아래의 루프는 반환된 배열의 각 단어를 표시합니다.
char[] delimiterChars = { ' ', ',', '.', ':', '\t' };
string text = "one\ttwo three:four,five six seven";
System.Console.WriteLine($"Original text: '{text}'");
string[] words = text.Split(delimiterChars);
System.Console.WriteLine($"{words.Length} words in text:");
foreach (var word in words)
{
System.Console.WriteLine($"<{word}>");
}
연속되는 모든 구분 기호의 인스턴스는 출력 배열에 빈 문자열을 생성합니다.
char[] delimiterChars = { ' ', ',', '.', ':', '\t' };
string text = "one\ttwo :,five six seven";
System.Console.WriteLine($"Original text: '{text}'");
string[] words = text.Split(delimiterChars);
System.Console.WriteLine($"{words.Length} words in text:");
foreach (var word in words)
{
System.Console.WriteLine($"<{word}>");
}
String.Split은 문자열 배열(단일 문자 대신 대상 문자열을 구문 분석하는 구분 기호 역할을 하는 문자 시퀀스)을 사용할 수 있습니다.
string[] separatingStrings = { "<<", "..." };
string text = "one<<two......three<four";
System.Console.WriteLine($"Original text: '{text}'");
string[] words = text.Split(separatingStrings, System.StringSplitOptions.RemoveEmptyEntries);
System.Console.WriteLine($"{words.Length} substrings in text:");
foreach (var word in words)
{
System.Console.WriteLine(word);
}
GitHub Copilot를 사용하여 문자열 분할
IDE에서 GitHub Copilot를 사용하여 C#을 사용하여 String.Split
문자열을 분할하는 코드를 생성할 수 있습니다.
Visual Studio 2022 버전 17.8 이상을 사용하는 경우 Visual Studio에서 AI 기반 GitHub Copilot를 사용하여 하나 이상의 구분 기호를 기반으로 입력 문자열을 부분 문자열로 분할하는 코드를 생성할 수 있습니다. 다음 예제와 같이 Copilot 채팅 창에서 프롬프트로 질문을 제출합니다. 편집기 창 자체에서 인라인 채팅을 사용하여 프롬프트를 제출할 수도 있습니다.
참고 항목
GitHub Copilot는 AI를 통해 구동되므로 예상치 못한 실수가 발생할 수 있습니다. 생성된 코드 또는 제안을 확인해야 합니다. GitHub Copilot의 일반적인 사용, 제품 영향, 사용자 감독 및 개인 정보에 대한 자세한 내용은 GitHub Copilot FAQ를 참조하세요.
다음 텍스트는 Copilot 채팅의 프롬프트 예를 보여줍니다.
Split.String을 사용하여 문자열을 부분 문자열로 분할하는 C# 코드를 생성합니다. 입력 문자열은 "당신은 몇 가지 승리. 당신은 일부를 잃게됩니다." 구분 기호는 공백과 마침표입니다. 예제 출력을 제공합니다.
요구 사항에 따라 문자열 및 구분 기호를 사용하도록 프롬프트를 사용자 지정할 수 있습니다.
슬래시 명령, 파일, 메서드 또는 클래스에 대한 참조, 스레드와 같은 채팅 기능을 사용하여 의도를 설정하고 범위가 지정된 컨텍스트를 통해 더 나은 답변을 얻을 수 있습니다. IDE에서 열려 있는 기존 파일의 경우 인라인 채팅 /generate code to split string1 in #Filename by delimiter spaces
을 사용하여 GitHub Copilot를 묻는 메시지를 표시할 수 있습니다.
다음 출력은 Copilot 채팅 응답의 예를 보여줍니다.
Here is an example of how you can use the Split method in C# to split the string "You win some. You lose some." using space and period as delimiters:
using System;
class Program
{
static void Main()
{
string input = "You win some. You lose some.";
char[] delimiters = new char[] { ' ', '.' };
string[] substrings = input.Split(delimiters, StringSplitOptions.RemoveEmptyEntries);
foreach (string substring in substrings)
{
Console.WriteLine(substring);
}
}
}
**Example Output**
You
win
some
You
lose
some
Copilot이 코드 블록을 반환하면 응답에 코드 복사, 새 파일에 코드 삽입 또는 코드 출력 미리 보기 옵션이 포함됩니다.
참고 항목
결과는 이러한 예시 응답에 표시된 것과 다를 수 있습니다. AI 모델은 비결정적이므로 동일한 질문을 할 때 다른 응답을 반환할 수 있습니다. 이는 시간이 지남에 따라 추가적인 학습과 적응, 언어의 차이, 채팅 기록과 같은 상황의 변화 등으로 인해 발생할 수 있습니다.
자세한 내용은 다음을 참조하세요.
- GitHub Copilot 보안 센터
- Visual Studio의 GitHub Copilot
- VS Code의 GitHub Copilot
참고 항목
.NET