> 백엔드 개발 > C++ > C#에서 문자열을 사용자 정의 크기 세그먼트로 청크화하려면 어떻게 해야 합니까?

C#에서 문자열을 사용자 정의 크기 세그먼트로 청크화하려면 어떻게 해야 합니까?

Barbara Streisand
풀어 주다: 2025-01-27 01:26:09
원래의
998명이 탐색했습니다.

How Can I Chunkify a String into Custom-Sized Segments in C#?

C#에서 문자열을 사용자 정의 크기의 청크로 효율적으로 분할

이 문서에서는 문자열을 더 작고 동일한 크기의 세그먼트로 나누는 C# 방법을 보여줍니다. 긴 문자열이 있다고 상상해 보세요.

<code class="language-csharp">string longString = "1111222233334444";</code>
로그인 후 복사

그리고 이를 특정 길이(예: 4자)의 덩어리로 나누어야 합니다. 원하는 출력은 다음과 같습니다.

<code>"1111"
"2222"
"3333"
"4444"</code>
로그인 후 복사

해결책: 깔끔하고 간결한 접근 방식

이를 달성하는 가장 효율적인 방법은 LINQ의 Enumerable.RangeSelect 메서드를 사용하는 것입니다.

<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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿