C#에서 문자열을 사용자 정의 크기의 청크로 효율적으로 분할
이 문서에서는 문자열을 더 작고 동일한 크기의 세그먼트로 나누는 C# 방법을 보여줍니다. 긴 문자열이 있다고 상상해 보세요.
<code class="language-csharp">string longString = "1111222233334444";</code>
그리고 이를 특정 길이(예: 4자)의 덩어리로 나누어야 합니다. 원하는 출력은 다음과 같습니다.
<code>"1111" "2222" "3333" "4444"</code>
해결책: 깔끔하고 간결한 접근 방식
이를 달성하는 가장 효율적인 방법은 LINQ의 Enumerable.Range
및 Select
메서드를 사용하는 것입니다.
<code class="language-csharp">static IEnumerable<string> ChunkifyString(string str, int chunkSize) { if (string.IsNullOrEmpty(str) || chunkSize <= 0) { yield break; // Handle null, empty, or invalid chunk size } for (int i = 0; i < str.Length; i += chunkSize) { yield return str.Substring(i, Math.Min(chunkSize, str.Length - i)); } }</code>
이 향상된 방법은 특히 매우 큰 문자열의 경우 더 나은 성능을 위해 for
루프와 yield return
을 사용합니다. 또한 null 또는 빈 입력 문자열과 양수가 아닌 청크 크기를 명시적으로 처리하여 더욱 강력해졌습니다. Math.Min
함수는 마지막 청크가 문자열의 남은 길이를 초과하지 않도록 보장합니다.
사용 예:
<code class="language-csharp">string myString = "111122223333444455"; int chunkSize = 4; foreach (string chunk in ChunkifyString(myString, chunkSize)) { Console.WriteLine(chunk); }</code>
다음과 같이 출력됩니다:
<code>1111 2222 3333 4444 55</code>
이 접근 방식은 길이가 청크 크기로 완벽하게 나누어지지 않는 문자열을 우아하게 처리하여 결과 청크에 모든 문자가 포함되도록 합니다. 이 솔루션은 간결하고 효율적이므로 다양한 문자열 조작 작업에 이상적입니다.
위 내용은 C#에서 문자열을 사용자 정의 크기 세그먼트로 청크화하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!