我在比较两个字符串时遇到问题。一个字符串中包含一个或多个不可读字符,而其他字符串相同但格式可读。
当我尝试使用它时,我遇到了麻烦
if (Alemria=Almería)...
我在表格中有这样的字符串Almería
。
如何做到这一点?
答案 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