Heim > Backend-Entwicklung > C++ > Wie kann ich eine Zeichenfolge in C-#in Custom-Größe-Segmente einteilen?

Wie kann ich eine Zeichenfolge in C-#in Custom-Größe-Segmente einteilen?

Barbara Streisand
Freigeben: 2025-01-27 01:26:09
Original
998 Leute haben es durchsucht

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

Effizientes Aufteilen von Strings in benutzerdefinierte Blöcke in C#

Dieser Artikel demonstriert eine C#-Methode zum Aufteilen einer Zeichenfolge in kleinere, gleich große Segmente. Stellen Sie sich vor, Sie haben eine lange Zeichenfolge:

<code class="language-csharp">string longString = "1111222233334444";</code>
Nach dem Login kopieren

Und Sie müssen es in Abschnitte mit einer bestimmten Länge aufteilen, beispielsweise jeweils 4 Zeichen. Die gewünschte Ausgabe wäre:

<code>"1111"
"2222"
"3333"
"4444"</code>
Nach dem Login kopieren

Die Lösung: Ein klarer und prägnanter Ansatz

Der effizienteste Weg, dies zu erreichen, ist die Verwendung der Methoden Enumerable.Range und Select von LINQ:

<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>
Nach dem Login kopieren

Diese verbesserte Methode verwendet eine for-Schleife und yield return für eine bessere Leistung, insbesondere bei sehr großen Zeichenfolgen. Es verarbeitet außerdem explizit Null- oder leere Eingabezeichenfolgen und nicht positive Blockgrößen, wodurch es robuster wird. Die Funktion Math.Min stellt sicher, dass der letzte Block die verbleibende Länge der Zeichenfolge nicht überschreitet.

Verwendungsbeispiel:

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

foreach (string chunk in ChunkifyString(myString, chunkSize))
{
    Console.WriteLine(chunk);
}</code>
Nach dem Login kopieren

Dies wird Folgendes ausgeben:

<code>1111
2222
3333
4444
55</code>
Nach dem Login kopieren

Dieser Ansatz geht elegant mit Zeichenfolgen um, deren Länge nicht perfekt durch die Blockgröße teilbar ist, und stellt sicher, dass alle Zeichen in den resultierenden Blöcken enthalten sind. Diese Lösung ist sowohl prägnant als auch effizient und eignet sich daher ideal für verschiedene Aufgaben zur Saitenmanipulation.

Das obige ist der detaillierte Inhalt vonWie kann ich eine Zeichenfolge in C-#in Custom-Größe-Segmente einteilen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage