C# 3.0 Cookbook:一、字符与字符串处理(4):在比较两个字符串时控制大小写敏感性
问题
需要判断两个字符串是否相等,此外,还要在比较时控制其大小写敏感性
解决方法
使用String类中的Compare静态方法比较两个字符串,是否采用大小写敏感进行比较取决于Compare重载方法的第三个参数。示例如下:
string lowerCase = "abc"; string upperCase = "AbC"; int caseInsensitiveResult = string.Compare(lowerCase, upperCase, StringComparison.CurrentCultureIgnoreCase); int caseSensitiveResult = string.Compare(lowerCase, StringComparison.CurrentCulture);
变量caseSensitiveResult的值为-1(表示lowerCase“小于”upperCase)或0(表示lowerCase“等于”upperCase)。
讨论
使用静态方法string.Compare可以使用户自由选择比较字符串时是否考虑其大小写问题。该方法返回一个整形变量用以表示两个字符串之间的关系。0表示两个字符串完全相等,负数表示第一个字符串小于第二个字符串,正数表示第一个字符串大于第二个字符串。
通过设定该方法的最后一个参数(comparisonType)为StringComparison.CurrentCultureIgnoreCase或StringComparison.CurrentCulture,可决定Compare方法在比较两个字符串时是否考虑其大小写问题,将这个参数设定为StringComparison.CurrentCulture可促使其进行大小写敏感的比较;设定参数为
StringComparison.CurrentCultureIgnoreCase可促使其进行大小写不敏感的比较。在使用其不包含comparisonTyp参数的重载方法时,默认比较方式为大小写敏感。
还可参见
MSDN文档中的“String.Compare方法”