Rumah > pembangunan bahagian belakang > C++ > Bagaimanakah saya dapat membandingkan rentetan dalam C# sambil mengabaikan aksen?

Bagaimanakah saya dapat membandingkan rentetan dalam C# sambil mengabaikan aksen?

Patricia Arquette
Lepaskan: 2025-01-24 16:01:11
asal
407 orang telah melayarinya

How Can I Compare Strings in C# While Ignoring Accents?

Dalam perbandingan rentetan c#, abaikan huruf aksen

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

Fungsi ini berkesan menukarkan watak tekanan (seperti "é") kepada kesannya yang sama (seperti "E"). Dengan menggunakan dan
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);
}
Salin selepas log masuk
, anda boleh menyimpan sensitiviti huruf kecil semasa mengeluarkan tanda regangan.

Contohnya, kod berikut menunjukkan cara menggunakan fungsi NormalizationForm.FormD untuk membandingkan rentetan apabila mengabaikan simbol tekanan: NormalizationForm.FormC Normalize

Dalam contoh ini, jika simbol aksen tidak dipertimbangkan, S1 dan S2 akan dianggap berbeza. Walau bagaimanapun, selepas mengeluarkan simbol tekanan, S1Nodiacritics dan S2Nodiacritics menjadi sama, mengakibatkan hasil perbandingan benar.

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!

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