ホームページ > バックエンド開発 > C++ > アクセントを無視しながら、C#の文字列を比較するにはどうすればよいですか?

アクセントを無視しながら、C#の文字列を比較するにはどうすればよいですか?

Patricia Arquette
リリース: 2025-01-24 16:01:11
オリジナル
382 人が閲覧しました

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

c#stringの比較では、アクセント文字を無視してください

C#では、同じスペルがあるが、異なる応力を持つ文字列は通常、異なるエンティティと見なされます。これは、文字列の文字列を無視する必要がある場合に課題をもたらす可能性があります。 この問題を解決するために、

関数は入力文字列を

に特異的に標準化し、すべての非インターバルマークを削除して、文字内のすべての応力記号を効果的に削除しました。次に、生成された文字列を

に指定して、元のAppleの感度を回復します。

RemoveDiacritics NormalizationForm.FormDこの関数は、応力文字(「é」など)を対応する効果(「e」など)に効果的に変換します。 とNormalizationForm.FormCを使用することにより、ストレッチマークを削除しながら、または小文字の感度を維持できます。

たとえば、次のコードは、ストレスシンボルを無視しているときに
<code class="language-csharp">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);
}</code>
ログイン後にコピー
関数を使用して文字列を比較する方法を示しています。

この例では、アクセントシンボルが考慮されない場合、S1とS2は異なると見なされます。ただし、応力記号を削除した後、S1NodiacriticsとS2Nodiacriticsは同じになり、Trueの比較結果が得られました。 NormalizationForm.FormD

以上がアクセントを無視しながら、C#の文字列を比較するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート