小技巧-字符串比较
2013-03-19 17:01 旦旦 阅读(360) 评论(0) 编辑 收藏 举报- String类型
话说“字符串”是我们平时最常用的数据类型之一,它表示一个字符序列。
- 判断两个字符串是否相等
以下的几种情况对于业务逻辑来说一般都是一样的。
类型 分配存储空间1 null 2 string.Empty 3 "" 是 4 " " 是
判定为空字符串的几种写法,按照性能从高到低的顺序是:s.Length == 0 优于 s == string.Empty 优于 s == ""但实际判断字符串为空时不是所有数据都由自己定义的string.Empty来付值的外部产生的数据可能是1、4情况这是就不能单单用字符串的长度来判断为0时就为空字符串了。以下是框架自带的判断是否为空的方法无疑IsNullOrWhiteSpace是最好判断字符串为空的方法。根据这一特点写出了CompareIgnoreCase这个比较字符串的方法。
public static bool IsNullOrEmpty( String value) {return (value == null || value.Length == 0);}public static bool IsNullOrWhiteSpace( String value) {if (value == null ) return true ;for (int i = 0; i < value.Length; i++) {if (!Char .IsWhiteSpace(value[i])) return false ;}return true ;} public static bool CompareIgnoreCase( string str1, string str2){if (string .IsNullOrWhiteSpace(str1) && string.IsNullOrWhiteSpace(str2)) return true ;var tmpstr1 = HasTrim(str1) ? str1.Trim() : str1;var tmpstr2 = HasTrim(str2) ? str2.Trim() : str2;return string .Equals(tmpstr1, tmpstr2, StringComparison.CurrentCultureIgnoreCase);}public static bool HasTrim( string value){if (string .IsNullOrEmpty(value)) return false ;if (Char .IsWhiteSpace(value[0])) return true ;if (Char .IsWhiteSpace(value[value.Length - 1])) return true ;return false ;}