In C#, Zeichenfolge mit derselben Schreibweise, aber unterschiedlicher Stress wird normalerweise als unterschiedliche Einheiten angesehen. Dies kann Herausforderungen bringen, wenn Sie die Zeichenfolge der Zeichenfolge ignorieren müssen.
Um dieses Problem zu lösen, gibt die Funktion
die Eingangszeichenfolge zu an und entfernt alle nicht -intervalischen Markierungen, um alle Stempelungssymbole im Zeichen effektiv zu entfernen. Die erzeugte Zeichenfolge wird dann so angegeben, dass die Empfindlichkeit seines ursprünglichen Apfeles wiederhergestellt wird. RemoveDiacritics
NormalizationForm.FormD
NormalizationForm.FormC
Diese Funktion wandelt den Spannungscharakter (wie "é") effektiv in seine entsprechenden Effekte (wie "e") um. Durch die Verwendung der und
<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>
Zum Beispiel zeigt der folgende Code, wie die Funktion NormalizationForm.FormD
zum Vergleich der Zeichenfolge verwendet wird, wenn das Spannungssymbol ignoriert: NormalizationForm.FormC
Normalize
Das obige ist der detaillierte Inhalt vonWie kann ich Strings in C# vergleichen, während ich Akzente ignoriere?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!