【发布时间】:2014-01-28 11:46:55
【问题描述】:
我有 2 个字符串,它们都是某种参考编号(有前缀和数字)。
string a = "R&D123";
string b = "R&D 123";
string a 和 string b 是两个不同的用户输入,我正在尝试比较两个字符串是否匹配。
我知道我可以使用String.Compare() 来检查两个字符串是否相同,但就像上面的示例一样,它们可能是不同的字符串,但在技术上是相同的。
因为它们都是用户输入(来自不同的用户),所以可以有几种不同的格式。
"R&D123"
"R&D 123" //with space in between
"R.D.123 " //using period or other character
"r&d123" //different case
"RD123" //no special character
...etc
有没有办法让我先“标准化”两个字符串然后比较它们??
我知道一种易于理解的方法是使用string.Replace() 将特殊字符和空格替换为空格并使用string.ToLower(),这样我就不必担心大小写了。但是这种方法的问题是,如果我有很多特殊字符,我会做很多次.Replace(),这并不理想。
另一个问题是R&D 不是我需要担心的唯一前缀,还有其他前缀,例如A.P.、K-D 等。不确定这是否会有所作为:/
感谢任何帮助,谢谢!
【问题讨论】:
标签: c# string compare normalization