연습 - Split() 및 Join() 살펴보기
- 10분
물류 회사의 개발 작업을 계속하면서 일련의 소규모 애플리케이션을 빌드하기 시작합니다. 이러한 애플리케이션은 함께 작동하여 한 파트너의 시스템에서 데이터를 가져오고, 데이터를 수정한 다음, 필요한 형식으로 내부 시스템에 전달합니다.
데이터 변환을 수행하려면 들어오는 데이터를 문자열로 받아들여 더 작은 데이터 요소로 구문 분석한 다음 필요한 다른 형식과 일치하도록 조작해야 합니다. 문자열 데이터를 더 작은 데이터 요소로 구문 분석하려면 어떻게 해야 하나요?
문자열 데이터 형식의 배열 메서드
string 형식의 변수에는 단일 문자열을 더 작은 문자열의 배열 또는 개별 문자의 배열로 변환하는 많은 기본 제공 메서드가 있습니다.
다른 컴퓨터 시스템의 데이터를 처리하는 경우 용도에 적합하지 않은 방식으로 형식이 지정되거나 인코딩됩니다. 이러한 경우 string 데이터 형식의 배열 메서드를 사용하여 문자열을 배열로 구문 분석합니다.
ToCharArray()를 사용하여 string 방향 바꾸기
//줄 주석 연산자를 삭제하거나 사용하여 이전 연습의 모든 코드를 주석 처리합니다.다음과 같이 Visual Studio Code 편집기에서 코드를 업데이트합니다.
string value = "abc123"; char[] valueArray = value.ToCharArray();
이 예제에서는 ToCharArray() 메서드를 사용하여 char의 배열을 만듭니다. 배열의 각 요소는 원래 문자열의 한 문자를 나타냅니다.
역방향으로 정렬한 후 문자 배열을 새 문자열에 결합합니다.
그런 다음, 배열에서 문자 순서가 역방향으로 정렬된 후 Write 메서드를 사용하여 문자가 다시 단일 출력으로 결합됩니다.
다음과 같이 Visual Studio Code 편집기에서 코드를 업데이트합니다.
string value = "abc123"; char[] valueArray = value.ToCharArray(); Array.Reverse(valueArray); string result = new string(valueArray); Console.WriteLine(result);new string(valueArray)식은System.String클래스의 비어 있는 새 인스턴스(C#의string데이터 형식과 같음)를 만들고 문자 배열을 생성자로 전달합니다.참고
new키워드는 무엇인가요?System.String클래스는 C#의string데이터 형식과 어떻게 관련되나요? 생성자란 무엇인가요? 모두 좋은 질문이지만 아쉽게도 이 모듈의 범위를 벗어납니다. 코드의 이 식을 사용할 때 백그라운드에서 진행되는 상황을 완전히 이해하려면 C#의 클래스 및 개체뿐 아니라 .NET 클래스 라이브러리에 대해 계속 알아보는 것이 좋습니다. 지금은 검색 엔진 및 Microsoft 설명서를 사용하여 변환을 수행하려고 하지만 C#을 사용하여 수행하는 방법이 확실하지 않은 이 같은 상황에서 사용할 수 있는 예를 찾아봅니다.Visual Studio Code 파일 메뉴에서 저장을 선택합니다.
코드를 빌드하거나 실행하기 전에 Program.cs 파일을 저장해야 합니다.
탐색기 패널에서 TestProject 폴더 위치에서 터미널을 열려면 TestProject를 마우스 오른쪽 단추로 클릭한 다음 통합 터미널에서 열기를 선택합니다.
터미널 패널이 열려 있어야 하고 터미널이 TestProject 폴더 위치에 열려 있음을 보여 주는 명령 프롬프트를 포함해야 합니다.
터미널 명령 프롬프트에서 코드를 실행하려면 dotnet run을 입력한 다음, Enter 키를 누릅니다.
참고
“실행할 프로젝트를 찾을 수 없습니다.”라는 메시지가 표시되면 터미널 명령 프롬프트에 예상되는 TestProject 폴더 위치가 표시되는지 확인합니다. 예:
C:\Users\someuser\Desktop\csharpprojects\TestProject>다음과 같은 출력이 표시됩니다.
321cba
Join()을 사용하여 모든 문자를 새로운 쉼표로 구분된 값 문자열로 결합
일부 경우에 문자 배열의 각 요소를 쉼표로 구분해야 합니다. 이러한 방식은 ASCII 텍스트로 표현된 데이터를 사용하는 경우에 일반적으로 사용됩니다. 이렇게 하려면 2단계에서 추가한 코드 줄을 주석으로 처리하고 String 클래스의 Join() 메서드를 사용하여 각 세그먼트를 구분하려는 문자(쉼표) 및 배열 자체를 전달합니다.
다음과 같이 Visual Studio Code 편집기에서 코드를 업데이트합니다.
string value = "abc123"; char[] valueArray = value.ToCharArray(); Array.Reverse(valueArray); // string result = new string(valueArray); string result = String.Join(",", valueArray); Console.WriteLine(result);코드 파일을 저장한 다음 Visual Studio Code를 사용하여 코드를 실행합니다.
다음과 같은 출력이 표시됩니다.
3,2,1,c,b,a
쉼표로 구분된 값 문자열을 문자열 배열로 Split()
코드를 완료하기 위해 Split() 메서드가 사용됩니다. 이 메서드는 string 형식의 변수를 위해 설계되었으며 문자열 배열을 만듭니다.
Visual Studio Code 편집기를 사용하여 파일 아래쪽에 다음 코드 줄을 추가합니다.
string[] items = result.Split(','); foreach (string item in items) { Console.WriteLine(item); }잠시 시간을 내어 이전 코드를 검토합니다.
하나의 긴 문자열을 더 작은 문자열로 분할하기 위해 쉼표가 구분 기호로
.Split()에 제공됩니다. 그런 다음, 이 코드는foreach루프를 사용하여 새로 만든 문자열 배열items의 각 요소를 반복합니다.이제 코드가 다음과 같이 표시되는지 확인합니다.
string value = "abc123"; char[] valueArray = value.ToCharArray(); Array.Reverse(valueArray); // string result = new string(valueArray); string result = String.Join(",", valueArray); Console.WriteLine(result); string[] items = result.Split(','); foreach (string item in items) { Console.WriteLine(item); }코드 파일을 저장한 다음 Visual Studio Code를 사용하여 코드를 실행합니다.
코드를 실행하면 다음과 같은 출력이 표시됩니다.
3,2,1,c,b,a 3 2 1 c b aitems를 사용하여 만든string[] items = result.Split(',');배열은foreach루프에서 사용되며string변수에 포함된 원본value의 개별 문자를 표시합니다.
요약
문자열과 배열을 사용할 때 기억해야 할 몇 가지 핵심 사항은 다음과 같습니다.
- 배열을 만들려면
ToCharArray()및Split()과 같은 메서드를 사용합니다. - 배열을 다시 단일 문자열로 변환하려면
Join()와 같은 메서드를 사용하거나char배열을 전달하는 새 문자열을 만듭니다.