字符串比较

字符串的比较方法:“==”操作符;String.Equals方法;https://www.360docs.net/doc/5f15082327.html,pare方法;https://www.360docs.net/doc/5f15082327.html,pareOrdinal方法。

str1.Equals(str2)

int result = https://www.360docs.net/doc/5f15082327.html,pare(str1,str2);
int result = https://www.360docs.net/doc/5f15082327.html,pare(str1,str2, true) //忽略大小写比较

public bool Equals ( string value, StringComparison comparisonType ):比较调用方法的字符串对象包含字符串和参数给出的对象是否在不区分大小写的情况下相同,如相同,就返回true,反之,返回false,第二个参数将指定区域性、大小写以及比较所用的排序规则.
如:
string a = "ABCDEF";
bool b = a.Equals("abcdef",StringComparison.CurrentCultureIgnoreCase);
Console.WriteLine(b);//即:true

总结及建议:

使用显示地指定了字符串比较规则的重载函数。一般来说,需要带有StringComparison类型参数的重载函数
在对未知文化的字符串做比较时,使用StringComparison.Ordinal和StringComparison.OrdinallgnoreCase作为默认值,提高性能
在像用户输出结果时,使用基于StringComparison.CurrentCulture的字符串
使用String.Equals的重载版本来测试两个字符串是否相等。
不要使用https://www.360docs.net/doc/5f15082327.html,pare或CompareTo的重载版本来检测返回值是否为0来判断字符串是否相等。这两个函数是用于字符串比较,而非检查相等性。
在字符串比较时,应以String.ToUpperInvariant函数使字符串规范化,而不用ToLowerInvariant方法,因为Microsoft对执行大写比较的代码进行了优化。之所以不用ToUpper和ToLower方法,是因为其对语言文化敏感。

相关文档
最新文档