Rumah > pembangunan bahagian belakang > C++ > Bagaimanakah saya boleh memainkan rentetan ke dalam segmen bersaiz tersuai di C#?

Bagaimanakah saya boleh memainkan rentetan ke dalam segmen bersaiz tersuai di C#?

Barbara Streisand
Lepaskan: 2025-01-27 01:26:09
asal
998 orang telah melayarinya

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

Memisahkan Rentetan dengan Cekap kepada Potongan Bersaiz Tersuai dalam C#

Artikel ini menunjukkan kaedah C# untuk membahagikan rentetan kepada segmen yang lebih kecil dan bersaiz sama. Bayangkan anda mempunyai tali panjang:

<code class="language-csharp">string longString = "1111222233334444";</code>
Salin selepas log masuk

Dan anda perlu memecahkannya menjadi kepingan dengan panjang tertentu, katakan 4 aksara setiap satu. Output yang dikehendaki ialah:

<code>"1111"
"2222"
"3333"
"4444"</code>
Salin selepas log masuk

Penyelesaian: Pendekatan Bersih dan Ringkas

Cara paling berkesan untuk mencapai ini ialah menggunakan kaedah Enumerable.Range dan Select 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>
Salin selepas log masuk

Kaedah yang dipertingkat ini menggunakan gelung for dan yield return untuk prestasi yang lebih baik, terutamanya dengan rentetan yang sangat besar. Ia juga secara eksplisit mengendalikan rentetan input kosong atau kosong dan saiz ketulan bukan positif, menjadikannya lebih teguh. Fungsi Math.Min memastikan bahagian terakhir tidak melebihi panjang baki rentetan.

Contoh Penggunaan:

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

foreach (string chunk in ChunkifyString(myString, chunkSize))
{
    Console.WriteLine(chunk);
}</code>
Salin selepas log masuk

Ini akan menghasilkan:

<code>1111
2222
3333
4444
55</code>
Salin selepas log masuk

Pendekatan ini dengan elegan mengendalikan rentetan yang panjangnya tidak boleh dibahagikan dengan sempurna dengan saiz bongkah, memastikan semua aksara disertakan dalam ketulan yang terhasil. Penyelesaian ini ringkas dan cekap, menjadikannya sesuai untuk pelbagai tugas manipulasi rentetan.

Atas ialah kandungan terperinci Bagaimanakah saya boleh memainkan rentetan ke dalam segmen bersaiz tersuai di C#?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan