Dalam C#, rentetan dengan ejaan yang sama tetapi tekanan yang berbeza biasanya dianggap sebagai entiti yang berbeza. Ini mungkin membawa cabaran apabila anda perlu mengabaikan rentetan rentetan rentetan.
Untuk menyelesaikan masalah ini, fungsi
secara khusus menyeragamkan rentetan input ke dan membuang semua tanda bukan interval untuk menghapuskan semua simbol tekanan secara berkesan dalam watak. Rentetan yang dihasilkan kemudiannya ditentukan untuk RemoveDiacritics
untuk memulihkan kepekaan epal asalnya. NormalizationForm.FormD
NormalizationForm.FormC
static string RemoveDiacritics(string text) { string formD = text.Normalize(NormalizationForm.FormD); StringBuilder sb = new StringBuilder(); foreach (char ch in formD) { UnicodeCategory uc = CharUnicodeInfo.GetUnicodeCategory(ch); if (uc != UnicodeCategory.NonSpacingMark) { sb.Append(ch); } } return sb.ToString().Normalize(NormalizationForm.FormC); }
Contohnya, kod berikut menunjukkan cara menggunakan fungsi NormalizationForm.FormD
untuk membandingkan rentetan apabila mengabaikan simbol tekanan: NormalizationForm.FormC
Normalize
Atas ialah kandungan terperinci Bagaimanakah saya dapat membandingkan rentetan dalam C# sambil mengabaikan aksen?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!