pembangunan bahagian belakang
Tutorial C#.Net
Bagaimana untuk menggantikan subrentetan dalam rentetan C#? (String.Replace)
Bagaimana untuk menggantikan subrentetan dalam rentetan C#? (String.Replace)
Dalam C#, kaedah String.Replace digunakan untuk menggantikan subrentetan dan mengembalikan rentetan baharu; ia adalah sensitif huruf besar-besaran, tidak mengubah suai rentetan asal, dan perlu ditugaskan untuk menerima hasilnya; jika kes perlu diabaikan, Regex.Replace harus digunakan; hanya kejadian pertama penggantian perlu dilaksanakan dalam kombinasi dengan IndexOf dan Substring.

Dalam C#, anda menggantikan subrentetan dalam rentetan menggunakan kaedah String.Replace — ia mengembalikan rentetan baharu dengan semua kejadian subrentetan tertentu digantikan dengan yang lain.
Penggunaan asas: Gantikan semua padanan
String.Replace adalah sensitif huruf besar dan menggantikan setiap kejadian subrentetan lama. Ia tidak mengubah suai rentetan asal (rentetan tidak boleh diubah dalam C#), jadi sentiasa berikan hasilnya:
string text = "Hello dunia, hello C#!";
rentetan hasil = text.Replace("hello", "hai"); // → "Hello dunia, hai C#!" (tiada padanan: 'Hello' ≠ 'hello')Gunakannya seperti ini:
- Panggil
.Replace(oldValue, newValue)pada sebarang rentetan - Kedua-dua
oldValuedannewValueadalah rentetan — walaupun kosong ("") - Jika
oldValuetidak ditemui, rentetan asal dikembalikan tidak berubah
Penggantian tidak sensitif huruf besar-besaran
String.Replace tidak menyokong padanan tidak sensitif huruf besar-besaran secara langsung. Sebaliknya, gunakan Regex.Replace :
menggunakan System.Text.RegularExpressions; string text = "Hello dunia, HELLO C#!"; rentetan hasil = Regex.Replace(teks, "hello", "hai", RegexOptions.IgnoreCase); // → "hai dunia, hai C#!"
Ini memberikan kawalan penuh ke atas tingkah laku padanan — berguna untuk corak atau apabila fleksibiliti kes diperlukan.
Gantikan hanya kejadian pertama
Untuk menggantikan sekali sahaja (bukan semua), gabungkan IndexOf dan Substring :
string text = "anjing kucing kucing kucing burung";
int firstIndex = text.IndexOf("kucing");
jika (firstIndex >= 0)
{
keputusan rentetan = teks.Substring(0, firstIndex) "tetikus"
text.Substring(firstIndex "cat".Length);
// → "tikus anjing kucing kucing burung"
}Atau bungkusnya dengan kaedah pembantu yang boleh diguna semula jika anda memerlukannya dengan kerap.
Menggantikan dengan null atau mengendalikan kes tepi
Ambil perhatian bahawa:
-
nulltidak dibenarkan untukoldValueataunewValue— membuangArgumentNullException -
oldValuekosong ("") membuangArgumentException - Jika
newValuekosong, ia mengalih keluar semua tikaoldValuedengan berkesan
Jadi sentiasa sahkan input jika ia datang daripada input pengguna atau sumber luaran.
Atas ialah kandungan terperinci Bagaimana untuk menggantikan subrentetan dalam rentetan C#? (String.Replace). Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!
Alat AI Hot
Undress AI Tool
Gambar buka pakaian secara percuma
AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.
Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik
Stock Market GPT
Penyelidikan pelaburan dikuasakan AI untuk keputusan yang lebih bijak
Artikel Panas
Alat popular
Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma
SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan
Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa
Dreamweaver CS6
Alat pembangunan web visual
SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)
Topik panas
Bagaimana untuk mengesahkan alamat e-mel dalam C#? (Corak regex)
Mar 08, 2026 am 12:06 AM
Adalah disyorkan untuk menggunakan biasa rasmi ringan Microsoft ^[a-zA-Z0-9._% -] @[a-zA-Z0-9.-] \.[a-zA-Z]{2,}$ untuk pengesahan format e-mel asas, meliputi 99% daripada input sebenar; cara yang lebih dipercayai ialah menggunakan pembina MailAddress dan hanya menangkap FormatException, sambil mengesahkan rentetan null/kosong terlebih dahulu.
Bagaimana untuk memisahkan rentetan dengan pembatas dalam C#? (String.Split)
Mar 12, 2026 am 12:21 AM
Ya, String.Split mengembalikan rentetan kosong secara lalai, menyebabkan item kosong disebabkan oleh pembatas berterusan atau pertama dan terakhir; anda perlu menggunakan StringSplitOptions.RemoveEmptyEntries untuk menapis, atau menapis secara manual; char[] digunakan untuk pemisahan aksara tunggal, dan rentetan[] digunakan untuk pemisahan subrentetan; Span.Split boleh mengelakkan peruntukan; melepasi had atas nombor akan memotong keputusan.
Bagaimana untuk menyertai rentetan dengan pemisah dalam C#? (String.Join)
Mar 13, 2026 am 12:02 AM
String.Join direka khas untuk penyambungan rentetan. Ia selamat, cekap dan sangat mudah dibaca. Hanya masukkan pembatas dan tatasusunan rentetan, dan elemen nol akan dilangkau secara automatik. Tatasusunan kosong atau null akan mengembalikan rentetan kosong. Pemformatan eksplisit diperlukan untuk mengendalikan jenis bukan rentetan. Dalam senario sensitif prestasi, tatasusunan diluluskan dahulu dan bukannya IEnumerable. StringBuilder sesuai untuk logik yang kompleks.
Bagaimana untuk menggunakan sifat dengan get set dalam C#? (Encapsulation)
Mar 10, 2026 am 12:33 AM
get/set tidak hanya menambah kurungan, tetapi merangkum titik permulaan: medan eksplisit diperlukan, operasi yang memakan masa dielakkan, ArgumentException dilemparkan apabila pengesahan gagal, pengubah suai akses berbeza disokong, init terhad kepada senario permulaan dan atribut logik pada asasnya ialah kaedah. Perhatian khusus mesti diberikan kepada penyahpepijatan dan prestasi.
Bagaimana untuk mengukur masa pelaksanaan dalam C#? (Kelas jam randik)
Mar 16, 2026 am 12:13 AM
Jam randik.Start() perlu dipanggil untuk kejadian yang tidak dimulakan, jika tidak InvalidOperationException akan dilemparkan; StartNew() ialah kaedah statik yang boleh dibuat dan dimulakan dalam satu langkah, menjadikannya lebih selamat dan lebih biasa digunakan.
Bagaimana untuk mengatasi kaedah ToString dalam C#? (Perwakilan rentetan)
Apr 04, 2026 am 12:02 AM
Mengatasi ToString() secara langsung kadangkala tidak berkesan kerana penyahpepijat, penyeri bersiri atau rangka kerja UI boleh memintasnya; public overridestringToString() mesti digunakan untuk mengelakkan pulangan nol dan operasi yang memakan masa, dan memberi perhatian kepada keselamatan benang dan pengendalian nilai nol.
Bagaimana untuk menyemak sama ada rentetan kosong atau batal dalam C#? (String.IsNullOrEmpty)
Apr 03, 2026 am 12:02 AM
String.IsNullOrEmpty tidak boleh mengendalikan rentetan kosong. Anda harus memilih String.IsNullOrWhiteSpace mengikut keperluan perniagaan; yang kedua menyokong .NET4.0 dan boleh mengenal pasti dengan tepat semua aksara ruang putih Unicode, dengan prestasi yang lebih rendah sedikit tetapi lebih selamat.
Bagaimana untuk mengalih keluar pendua daripada senarai dalam C#? (Kaedah yang berbeza)
Mar 29, 2026 am 12:04 AM
Distinct() lalai untuk menyahduplikasi jenis rujukan dengan rujukan dan bukannya nilai; ia perlu melaksanakan IEquatable atau IEqualityComparer, atau menggunakan DistinctBy() (.NET6); ia mengembalikan IEnumerable, pelaksanaan tertunda, dan mesti ditukar kepada koleksi untuk boleh berubah.





