将字符串与具有不可读字符的字符串进行比较

时间:2011-05-06 18:07:44

标签: c#

我在比较两个字符串时遇到问题。一个字符串中包含一个或多个不可读字符,而其他字符串相同但格式可读。

当我尝试使用它时,我遇到了麻烦

if (Alemria=Almería)... 

我在表格中有这样的字符串Almería

如何做到这一点?

5 个答案:

答案 0 :(得分:2)

使用带有string.Equals枚举的StringComparison重载 - 使用其中一个CurrentCulture枚举成员。

您需要将当前文化设置为可以按这些字符排序的文化。

答案 1 :(得分:0)

根据您想要的严格程度,您可以尝试这样做。如果您知道有问题的字符仅来自西班牙语字母表,您可以从种子值中删除它们(可能使用RegEx)并修改您的比较逻辑以对目标记录执行相同操作。例如,从两侧删除所有'ñ'和'n',并可能添加长度比较以提高可靠性。当然这与所有特殊角色一起做,而不仅仅是'ñ'。

答案 2 :(得分:0)

看看this article是否会对您有所帮助,您可以替换单词中的所有重音字符,然后进行比较。

答案 3 :(得分:0)

我认为CompareOptions.IgnoreNonSpace是您正在寻找的。比较将忽略重音符号,变音符号和元音标记。

        string str1 = "mun";
        string str2 = "mün";
        int result1 = string.Compare(str1, str2, CultureInfo.InvariantCulture, CompareOptions.IgnoreNonSpace);
        int result2 = string.Compare(str1, str2, CultureInfo.CurrentCulture, CompareOptions.IgnoreNonSpace);

但是Alemria与Almería不同。似乎它被认为是另一个象征。

答案 4 :(得分:-2)

尝试

    if(var.StartsWith("Almer"))//repalce var with your string var
    MessageBox.Show("String matched");//do watever you want to do here