小技巧-字符串比较

  • String类型
话说“字符串”是我们平时最常用的数据类型之一,它表示一个字符序列。
  1. 判断两个字符串是否相等
以下的几种情况对于业务逻辑来说一般都是一样的。
  类型
分配存储空间
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  ;
  }
 

你可能感兴趣的:(字符串)