Cabaran:
Menggantikan kejadian pertama rentetan dalam teks yang diberikan ialah tugas biasa dalam pengaturcaraan. Artikel ini meneroka cara untuk melakukan ini dengan cekap dalam .NET.
Penyelesaian:
Untuk menggantikan kejadian pertama rentetan dalam .NET kita boleh menggunakan kaedah berikut:
<code class="language-csharp">string ReplaceFirst(string text, string search, string replace) { int pos = text.IndexOf(search); if (pos < 0) return text; return text.Substring(0, pos) + replace + text.Substring(pos + search.Length); }</code>
Kaedah ini mengambil tiga parameter: teks asal, rentetan untuk dicari dan rentetan gantian. Ia mula-mula menggunakan IndexOf
untuk mencari indeks kejadian pertama rentetan carian dalam teks. Jika tiada kejadian ditemui (iaitu pos adalah negatif), teks asal dikembalikan tidak berubah.
Seterusnya, kaedah ini berfungsi dengan menggabungkan subrentetan sebelum kejadian pertama rentetan carian (dari indeks 0 hingga pos), rentetan gantian dan subrentetan selepas rentetan carian (dari carian pos indeks. Panjang hingga akhir teks ) untuk membina rentetan baharu.
Contoh:
Pertimbangkan contoh berikut:
<code class="language-csharp">string str = "The brown brown fox jumps over the lazy dog"; str = ReplaceFirst(str, "brown", "quick");</code>
Selepas kod ini dijalankan, nilai str akan menjadi "Musang coklat yang cepat melompat ke atas anjing yang malas". Kejadian pertama "coklat" telah digantikan dengan "cepat".
Nota tambahan:
Regex.Replace(String, String, Int32)
juga boleh melaksanakan tugas ini, tetapi ia mungkin lebih mahal dari segi pengiraan daripada kaedah tersuai yang dibentangkan di sini. Atas ialah kandungan terperinci Bagaimana untuk Menggantikan Hanya Kejadian Pertama Rentetan dalam .NET?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!