有效地將字串分成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>
這種改進的方法使用Afor
循環,yield return
進行更好的效能,尤其是在非常大的字串中。 它還明確處理無效的輸入字串和非陽性塊尺寸,從而使其更健壯。 Math.Min
函數可確保最後一個區塊不會超過字串的剩餘長度。
>用法範例:
<code class="language-csharp">string myString = "111122223333444455"; int chunkSize = 4; foreach (string chunk in ChunkifyString(myString, chunkSize)) { Console.WriteLine(chunk); }</code>
>這種方法優雅地處理了其長度不完全排除的弦線,以確保所有字元都包含在由此產生的區塊中。 該解決方案既簡潔又有效,非常適合各種字串操縱任務。
以上是如何將字符串分解為C#中的自定義段段?的詳細內容。更多資訊請關注PHP中文網其他相關文章!