Maison > développement back-end > C++ > Comment puis-je regrouper une chaîne en segments de taille personnalisée en C# ?

Comment puis-je regrouper une chaîne en segments de taille personnalisée en C# ?

Barbara Streisand
Libérer: 2025-01-27 01:26:09
original
998 Les gens l'ont consulté

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

Fractionnement efficace des chaînes en morceaux de taille personnalisée en C #

Cet article démontre une méthode C # pour diviser une chaîne en segments plus petits et de taille égale. Imaginez que vous avez une longue chaîne:

<code class="language-csharp">string longString = "1111222233334444";</code>
Copier après la connexion

Et vous devez le diviser en morceaux d'une longueur spécifique, disons 4 caractères chacun. La sortie souhaitée serait:

<code>"1111"
"2222"
"3333"
"4444"</code>
Copier après la connexion

La solution: une approche propre et concise

La façon la plus efficace d'y parvenir est d'utiliser les méthodes de Linq Enumerable.Range et 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>
Copier après la connexion

Cette méthode améliorée utilise une boucle for et yield return pour de meilleures performances, en particulier avec des chaînes très grandes. Il gère également explicitement les chaînes d'entrée nulles ou vides et les tailles de morceaux non positives, ce qui le rend plus robuste. La fonction Math.Min garantit que le dernier morceau ne dépasse pas la longueur restante de la chaîne.

Exemple d'utilisation:

<code class="language-csharp">string myString = "111122223333444455";
int chunkSize = 4;

foreach (string chunk in ChunkifyString(myString, chunkSize))
{
    Console.WriteLine(chunk);
}</code>
Copier après la connexion

Ceci sera sorti:

<code>1111
2222
3333
4444
55</code>
Copier après la connexion

Cette approche gère élégamment les chaînes dont les longueurs ne sont pas parfaitement divisibles par la taille du morceau, garantissant que tous les personnages sont inclus dans les morceaux résultants. Cette solution est à la fois concise et efficace, ce qui le rend idéal pour diverses tâches de manipulation de cordes.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal