In C#ist es schwieriger, die Zeichenfolge mit dem Stresscharakter zu verarbeiten. Betrachten Sie das folgende Beispiel:
Diese beiden Zeichenfolge sollten gleich sein, aber beide Anweisungen geben falsch zurück. Dies liegt daran, dass der Akzent auf den Brief als verschiedene Zeichen angesehen wird. Um dieses Problem zu lösen, können wir eine Technologie verwenden, die zusätzliche Symbole (oder verflochten) macht, bevor wir die Zeichenfolge vergleichen.
<code class="language-csharp">string s1 = "hello"; string s2 = "héllo"; s1.Equals(s2, StringComparison.InvariantCultureIgnoreCase); s1.Equals(s2, StringComparison.OrdinalIgnoreCase);</code>
Folgendes ist eine Methode, um zusätzliche Symbole aus der Zeichenfolge zu entfernen:
Diese Methode standardisiert zuerst die Zeichenfolge in D -Formulare, die in mehrere Zeichen mit dem Zeichen mit Spannung aufgeteilt werden. Es iteriert diese Zeichen und filtert die nicht -intervalische Marke (dh die Spannung). Schließlich wird die verbleibenden Zeichen fortgesetzt, um eine Zeichenfolge ohne Stress zu bilden.Um diese Methode zu verwenden, wenden Sie sie einfach auf zwei Zeichenfolge an, bevor Sie sie vergleichen. Zum Beispiel:
<code class="language-csharp">static string RemoveDiacritics(string text) { // 将字符串规范化为 Unicode 规范化形式 D string formD = text.Normalize(NormalizationForm.FormD); // 创建一个 StringBuilder 来保存结果字符串 StringBuilder sb = new StringBuilder(); // 迭代规范化字符串中的字符 foreach (char ch in formD) { // 检查字符是否不是非间隔标记 UnicodeCategory uc = CharUnicodeInfo.GetUnicodeCategory(ch); if (uc != UnicodeCategory.NonSpacingMark) { // 将字符附加到 StringBuilder sb.Append(ch); } } // 将 StringBuilder 转换为字符串并将其规范化为 Unicode 规范化形式 C return sb.ToString().Normalize(NormalizationForm.FormC); }</code>
Dies wird korrekt als wahr bewertet und denken, dass der Stress "e" in "Héllo" der Nicht -Stress "e" in "Hallo" entspricht.
Das obige ist der detaillierte Inhalt vonWie kann ich Strings in C# vergleichen, während ich akzentuale Charaktere ignoriere?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!