字符串比较 – strA.ToLower()== strB.ToLower()或strA.Equals(strB,StringComparisonType)?
根据标题,你使用什么样的字符串比较练习?为什么?
你没有指定一个平台,但我猜是.NET。 我强烈建议你使用后一种forms – 因为案例比较并不像你想象的那么简单。 (它也避免了创建额外的字符串,但这是另一回事。)
例如,当您在土耳其运行时,如果您的代码在“mail”和“MAIL”中显示,您希望代码执行什么操作? 如果使用ToLower
,它将返回false,同样如果使用CurrentCultureIgnoreCase
– 但如果使用InvariantCultureIgnoreCase
,它将返回true。 您需要考虑数据的来源以及您尝试使用它实现的目标。
有关更多信息和指导,请参阅MSDN中使用字符串的建议 。
除了其他任何事情,我会说后者更有效地表达了你的意图。 你实际上并不对字符串的小写值感兴趣 – 你以不区分大小写的方式对相等感兴趣…这正是第二种forms所表达的。
Equals
调用可以更好地扩展,因为它是一个字符串操作而不是三个。
对于使用StringComparison.OrdinalIgnoreCase
选项进行大小写的比较,您可以获得最佳性能。 但是,由于它没有考虑文化差异,因此可能并不总能得出您想要的结果。
如果要更改大小写进行比较,建议您使用ToUpper
而不是ToLower
。 一些异国情调的字母不能从大写到小写正确转换,但是从小写到大写的转换有效。
在大多数情况下,性能并不重要,因此您应该使用在这种情况下最有意义的替代方案。
您没有指定使用哪种语言,但是从==
运算符看它看起来像C#。 如果你要使用VB,你应该考虑到=
运算符不使用字符串类的相等opreator,而是VB自己进行比较的逻辑,这略有不同。
使用第二个比第一个更好。 因为,所有语言都支持第二种类型,使用起来会更方便。