在 C# 中匹配带和不带变音符号的越南名字

问题描述 投票:0回答:0

我写了一个代码,我想比较 2 个相同的名字,但其中一个带有变音符号

例如。 Dăn 将与 Dan

匹配

我希望能够匹配有和没有变音符号的越南名字,但我的代码保持返回不匹配以进行检查。还有其他方法吗?

    static void Main(string[] args)
    {
        string name1 = "Dan";
        string name2 = "Dăn";

        bool match = CompareStrings(name1, name2);

        if (match)
        {
            Console.WriteLine("The strings match.");
        }
        else
        {
            Console.WriteLine("The strings do not match.");
        }
    }

    static bool CompareStrings(string str1, string str2)
    {
        if (str1.Equals(str2, StringComparison.InvariantCultureIgnoreCase))
        {
            return true;
        }

        string str1Normalized = str1.Normalize(NormalizationForm.FormC);
        string str2Normalized = str2.Normalize(NormalizationForm.FormC);

        if (str1Normalized.Equals(str2Normalized, StringComparison.InvariantCultureIgnoreCase))
        {
            return true;
        }

        return false;
    }
c# string-comparison diacritics
© www.soinside.com 2019 - 2024. All rights reserved.