C# 3.0 CookBook: 二、字符与字符串处理(2):两个字符相比较时控制大小写
2010-04-16 09:48
495 查看
问题
要判断两个字符是否相等,但是需要一个灵活掌握区分大小写或不区别大小写的手段。
解决方法:
在char类型中创建一个扩展方法,使用char结构中的Equals方法比较两个字符。
第一个重载的扩展方法IsCharEqual只获取一个参数,用于和当前字符进行比较。该方法然后再调用第二个包含两个参数的IsCharEqual方法。当该方法被调用时最后一个参数的默认值为false。用户也不需要给caseSensitiveCompare参数赋值,它会自动地设置默认值为false。
进一步对重载的IsCharEqual方法进行扩展,可以使其以处理不同种类语言的文字。调用ToUpperInvariant方法时增加CultureInfo参数可以传入用户调用的字符串的区域信息。该信息允许ToUpperInvariant正确地将那些包含特殊区域信息的字符大写化(例如代表语言、地域的字母)。
讨论
当比较两个字符串且考虑其大小写情况时可混合使用String类的ToUpperInvariant方法和Equals方法。ToUpperInvariant方法
要判断两个字符是否相等,但是需要一个灵活掌握区分大小写或不区别大小写的手段。
解决方法:
在char类型中创建一个扩展方法,使用char结构中的Equals方法比较两个字符。
static class CharStrExtMethods { public static bool IsCharEqual(this char firstChar, char secondChar) { return (IsCharEqual(firstChar, secondChar, false)); } public static bool IsCharEqual(this char firstChar, char secondChar, bool caseSensitiveCompare) { if (caseSensitiveCompare) { return (firstChar.Equals(secondChar)); } else { return (char.ToUpperInvariant(firstChar).Equals( char.ToUpperInvariant(secondChar))); } } public static bool IsCharEqual(this char firstChar, CultureInfo firstCharCulture, char secondChar, CultureInfo secondCharCulture) { return (IsCharEqual(firstChar, firstCharCulture, secondChar, secondCharCulture, false)); } public static bool IsCharEqual(this char firstChar, CultureInfo firstCharCulture, char secondChar, CultureInfo secondCharCulture, bool caseSensitiveCompare) { if (caseSensitiveCompare) { return (firstChar.Equals(secondChar)); } else { return (char.ToUpper(firstChar, firstCharCulture).Equals (char.ToUpper(secondChar, secondCharCulture))); } } }
第一个重载的扩展方法IsCharEqual只获取一个参数,用于和当前字符进行比较。该方法然后再调用第二个包含两个参数的IsCharEqual方法。当该方法被调用时最后一个参数的默认值为false。用户也不需要给caseSensitiveCompare参数赋值,它会自动地设置默认值为false。
进一步对重载的IsCharEqual方法进行扩展,可以使其以处理不同种类语言的文字。调用ToUpperInvariant方法时增加CultureInfo参数可以传入用户调用的字符串的区域信息。该信息允许ToUpperInvariant正确地将那些包含特殊区域信息的字符大写化(例如代表语言、地域的字母)。
讨论
当比较两个字符串且考虑其大小写情况时可混合使用String类的ToUpperInvariant方法和Equals方法。ToUpperInvariant方法
相关文章推荐
- C# 3.0 Cookbook:一、字符与字符串处理(4):在比较两个字符串时控制大小写敏感性
- C# 3.0 Cookbook:一、字符与字符串处理(5):把一个字符串与另一个字符串的头部或尾部作比较
- C# 3.0 Cookbook:一、字符与字符串处理(3):在一个字符串内寻找另一个字符串出现的所有位置
- C# 3.0 Cookbook:二、字符与字符串处理(1):判断字符类型
- Oracle中“字符串中的字符大小写敏感处理方法”
- TCPL学习笔记:编写expand(s1, s2),将字符串s1中类似于a-z一类的速记符号在s2中扩充完整。可以处理大小写及字符,以及a-b-c, a-z0-9以及-a-z等多种情况。
- 算法:字符串处理-判断两个字符串是否互为“形变词”(判断两字符串中字符种类和出现次数是否均相同)
- (字符串的处理4.7.14)UVA 10252 Common Permutation(寻找两个字符串中的共同字符&&按字典序输出)
- 给定两个字符串,请编写程序,确定其中一个字符串的字符重新排列后,能否变成另一个字符串。这里规定大小写为不同字符,且考虑字符串重点空格。 给定一个string stringA和一个string stri
- 计算两个字符串的最大公共字串的长度,字符不区分大小写(要求计算连续最长字串的长度)
- C#控制台基础 比较两个字符串,无视大小写
- 字符串中含不可打印(控制符)字符的处理
- 读书笔记_CLR.via.c#第十四章_字符,字符串和文本处理
- 计算两个字符串的最大公共字符串的长度,字符不区分大小写
- C#中根据字节处理字符串(含中文字符)
- 华为机试:计算两个字符串的最大公共字串的长度,字符不区分大小写
- C#下比较两个等长字符串是否含有完全相同字符(忽略字符顺序)
- 给定两个字符串,请编写程序,确定其中一个字符串的字符重新排列后,能否变成另一个字符串。这里规定大小写为不同字符,且考虑字符串重点空格。 给定一个string stringA和一个string stri
- C# 关于字符、字符串和文本处理
- C# 控制字符串中某字符的颜色