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方法”

posted @ 2010-04-18 22:24  pocketz  阅读(1212)  评论(0编辑  收藏  举报