在 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
来获得更好的性能,尤其是对于非常大的字符串。 它还显式处理空或空输入字符串以及非正块大小,使其更加健壮。 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中文网其他相关文章!