首页 > 代码库 > 帮助类系列上

帮助类系列上

1 using System;   2 using System.Collections.Generic;   3 using System.Linq;   4 using System.Text;   5 using System.IO;   6 using System.Net;   7 using System.Web;   8 using System.Security.Cryptography;   9 using System.Text.RegularExpressions;  10 using System.Web.Script.Serialization;  11 using System.Data;  12 using System.Collections;  13 using System.Runtime.Serialization.Json;  14 using System.Configuration;  15 using System.Reflection;  16   17 namespace Common  18 {  19     /// <summary>  20     /// 系统帮助类  21     /// </summary>  22    public class Utils  23     {  24         #region 对象转换处理  25         /// <summary>  26         /// 判断对象是否为Int32类型的数字  27         /// </summary>  28         /// <param name="Expression"></param>  29         /// <returns></returns>  30         public static bool IsNumeric(object expression)  31         {  32             if (expression != null)  33                 return IsNumeric(expression.ToString());  34   35             return false;  36   37         }  38   39         /// <summary>  40         /// 判断对象是否为Int32类型的数字  41         /// </summary>  42         /// <param name="Expression"></param>  43         /// <returns></returns>  44         public static bool IsNumeric(string expression)  45         {  46             if (expression != null)  47             {  48                 string str = expression;  49                 if (str.Length > 0 && str.Length <= 11 && Regex.IsMatch(str, @"^[-]?[0-9]*[.]?[0-9]*$"))  50                 {  51                     if ((str.Length < 10) || (str.Length == 10 && str[0] == ‘1‘) || (str.Length == 11 && str[0] == ‘-‘ && str[1] == ‘1‘))  52                         return true;  53                 }  54             }  55             return false;  56         }  57   58         /// <summary>  59         /// 是否为Double类型  60         /// </summary>  61         /// <param name="expression"></param>  62         /// <returns></returns>  63         public static bool IsDouble(object expression)  64         {  65             if (expression != null)  66                 return Regex.IsMatch(expression.ToString(), @"^([0-9])[0-9]*(\.\w*)?$");  67   68             return false;  69         }  70   71         /// <summary>  72         /// 将字符串转换为数组  73         /// </summary>  74         /// <param name="str">字符串</param>  75         /// <returns>字符串数组</returns>  76         public static string[] GetStrArray(string str)  77         {  78             return str.Split(new char[‘,‘]);  79         }  80   81         /// <summary>  82         /// 将数组转换为字符串  83         /// </summary>  84         /// <param name="list">List</param>  85         /// <param name="speater">分隔符</param>  86         /// <returns>String</returns>  87         public static string GetArrayStr(List<string> list, string speater)  88         {  89             StringBuilder sb = new StringBuilder();  90             for (int i = 0; i < list.Count; i++)  91             {  92                 if (i == list.Count - 1)  93                 {  94                     sb.Append(list[i]);  95                 }  96                 else  97                 {  98                     sb.Append(list[i]);  99                     sb.Append(speater); 100                 } 101             } 102             return sb.ToString(); 103         } 104  105         /// <summary> 106         /// object型转换为bool型 107         /// </summary> 108         /// <param name="strValue">要转换的字符串</param> 109         /// <param name="defValue">缺省值</param> 110         /// <returns>转换后的bool类型结果</returns> 111         public static bool StrToBool(object expression, bool defValue) 112         { 113             if (expression != null) 114                 return StrToBool(expression, defValue); 115  116             return defValue; 117         } 118  119         /// <summary> 120         /// string型转换为bool型 121         /// </summary> 122         /// <param name="strValue">要转换的字符串</param> 123         /// <param name="defValue">缺省值</param> 124         /// <returns>转换后的bool类型结果</returns> 125         public static bool StrToBool(string expression, bool defValue) 126         { 127             if (expression != null) 128             { 129                 if (string.Compare(expression, "true", true) == 0) 130                     return true; 131                 else if (string.Compare(expression, "false", true) == 0) 132                     return false; 133             } 134             return defValue; 135         } 136  137         /// <summary> 138         /// 将对象转换为Int32类型 139         /// </summary> 140         /// <param name="expression">要转换的字符串</param> 141         /// <param name="defValue">缺省值</param> 142         /// <returns>转换后的int类型结果</returns> 143         public static int ObjToInt(object expression, int defValue) 144         { 145             if (expression != null) 146                 return StrToInt(expression.ToString(), defValue); 147  148             return defValue; 149         } 150  151         /// <summary> 152         /// 将字符串转换为Int32类型 153         /// </summary> 154         /// <param name="expression">要转换的字符串</param> 155         /// <param name="defValue">缺省值</param> 156         /// <returns>转换后的int类型结果</returns> 157         public static int StrToInt(string expression, int defValue) 158         { 159             if (string.IsNullOrEmpty(expression) || expression.Trim().Length >= 11 || !Regex.IsMatch(expression.Trim(), @"^([-]|[0-9])[0-9]*(\.\w*)?$")) 160                 return defValue; 161  162             int rv; 163             if (Int32.TryParse(expression, out rv)) 164                 return rv; 165  166             return Convert.ToInt32(StrToFloat(expression, defValue)); 167         } 168  169         /// <summary> 170         /// Object型转换为decimal型 171         /// </summary> 172         /// <param name="strValue">要转换的字符串</param> 173         /// <param name="defValue">缺省值</param> 174         /// <returns>转换后的decimal类型结果</returns> 175         public static decimal ObjToDecimal(object expression, decimal defValue) 176         { 177             if (expression != null) 178                 return StrToDecimal(expression.ToString(), defValue); 179  180             return defValue; 181         } 182  183         /// <summary> 184         /// string型转换为decimal型 185         /// </summary> 186         /// <param name="strValue">要转换的字符串</param> 187         /// <param name="defValue">缺省值</param> 188         /// <returns>转换后的decimal类型结果</returns> 189         public static decimal StrToDecimal(string expression, decimal defValue) 190         { 191             if ((expression == null) || (expression.Length > 10)) 192                 return defValue; 193  194             decimal intValue = http://www.mamicode.com/defValue;"^([-]|[0-9])[0-9]*(\.\w*)?$"); 198                 if (IsDecimal) 199                     decimal.TryParse(expression, out intValue); 200             } 201             return intValue; 202         } 203  204         /// <summary> 205         /// Object型转换为float型 206         /// </summary> 207         /// <param name="strValue">要转换的字符串</param> 208         /// <param name="defValue">缺省值</param> 209         /// <returns>转换后的int类型结果</returns> 210         public static float ObjToFloat(object expression, float defValue) 211         { 212             if (expression != null) 213                 return StrToFloat(expression.ToString(), defValue); 214  215             return defValue; 216         } 217  218         /// <summary> 219         /// string型转换为float型 220         /// </summary> 221         /// <param name="strValue">要转换的字符串</param> 222         /// <param name="defValue">缺省值</param> 223         /// <returns>转换后的int类型结果</returns> 224         public static float StrToFloat(string expression, float defValue) 225         { 226             if ((expression == null) || (expression.Length > 10)) 227                 return defValue; 228  229             float intValue = http://www.mamicode.com/defValue;"^([-]|[0-9])[0-9]*(\.\w*)?$"); 233                 if (IsFloat) 234                     float.TryParse(expression, out intValue); 235             } 236             return intValue; 237         } 238  239         /// <summary> 240         /// 将对象转换为日期时间类型 241         /// </summary> 242         /// <param name="str">要转换的字符串</param> 243         /// <param name="defValue">缺省值</param> 244         /// <returns>转换后的int类型结果</returns> 245         public static DateTime StrToDateTime(string str, DateTime defValue) 246         { 247             if (!string.IsNullOrEmpty(str)) 248             { 249                 DateTime dateTime; 250                 if (DateTime.TryParse(str, out dateTime)) 251                     return dateTime; 252             } 253             return defValue; 254         } 255  256         /// <summary> 257         /// 将对象转换为日期时间类型 258         /// </summary> 259         /// <param name="str">要转换的字符串</param> 260         /// <returns>转换后的int类型结果</returns> 261         public static DateTime StrToDateTime(string str) 262         { 263             return StrToDateTime(str, DateTime.Now); 264         } 265  266         /// <summary> 267         /// 将对象转换为日期时间类型 268         /// </summary> 269         /// <param name="obj">要转换的对象</param> 270         /// <returns>转换后的int类型结果</returns> 271         public static DateTime ObjectToDateTime(object obj) 272         { 273             return StrToDateTime(obj.ToString()); 274         } 275  276         /// <summary> 277         /// 将对象转换为日期时间类型 278         /// </summary> 279         /// <param name="obj">要转换的对象</param> 280         /// <param name="defValue">缺省值</param> 281         /// <returns>转换后的int类型结果</returns> 282         public static DateTime ObjectToDateTime(object obj, DateTime defValue) 283         { 284             return StrToDateTime(obj.ToString(), defValue); 285         } 286  287         /// <summary> 288         /// 将对象转换为字符串 289         /// </summary> 290         /// <param name="obj">要转换的对象</param> 291         /// <returns>转换后的string类型结果</returns> 292         public static string ObjectToStr(object obj) 293         { 294             if (obj == null) 295                 return ""; 296             return obj.ToString().Trim(); 297         } 298         #endregion 299  300         #region 分割字符串 301         /// <summary> 302         /// 分割字符串 303         /// </summary> 304         public static string[] SplitString(string strContent, string strSplit) 305         { 306             if (!string.IsNullOrEmpty(strContent)) 307             { 308                 if (strContent.IndexOf(strSplit) < 0) 309                     return new string[] { strContent }; 310  311                 return Regex.Split(strContent, Regex.Escape(strSplit), RegexOptions.IgnoreCase); 312             } 313             else 314                 return new string[0] { }; 315         } 316  317         /// <summary> 318         /// 分割字符串 319         /// </summary> 320         /// <returns></returns> 321         public static string[] SplitString(string strContent, string strSplit, int count) 322         { 323             string[] result = new string[count]; 324             string[] splited = SplitString(strContent, strSplit); 325  326             for (int i = 0; i < count; i++) 327             { 328                 if (i < splited.Length) 329                     result[i] = splited[i]; 330                 else 331                     result[i] = string.Empty; 332             } 333  334             return result; 335         } 336         #endregion 337  338         #region 截取字符串 339         public static string GetSubString(string p_SrcString, int p_Length, string p_TailString) 340         { 341             return GetSubString(p_SrcString, 0, p_Length, p_TailString); 342         } 343         public static string GetSubString(string p_SrcString, int p_StartIndex, int p_Length, string p_TailString) 344         { 345             string str = p_SrcString; 346             byte[] bytes = Encoding.UTF8.GetBytes(p_SrcString); 347             foreach (char ch in Encoding.UTF8.GetChars(bytes)) 348             { 349                 if (((ch > ‘?‘) && (ch < ‘一‘)) || ((ch > 0xac00) && (ch < 0xd7a3))) 350                 { 351                     if (p_StartIndex >= p_SrcString.Length) 352                     { 353                         return ""; 354                     } 355                     return p_SrcString.Substring(p_StartIndex, ((p_Length + p_StartIndex) > p_SrcString.Length) ? (p_SrcString.Length - p_StartIndex) : p_Length); 356                 } 357             } 358             if (p_Length < 0) 359             { 360                 return str; 361             } 362             byte[] sourceArray = Encoding.Default.GetBytes(p_SrcString); 363             if (sourceArray.Length <= p_StartIndex) 364             { 365                 return str; 366             } 367             int length = sourceArray.Length; 368             if (sourceArray.Length > (p_StartIndex + p_Length)) 369             { 370                 length = p_Length + p_StartIndex; 371             } 372             else 373             { 374                 p_Length = sourceArray.Length - p_StartIndex; 375                 p_TailString = ""; 376             } 377             int num2 = p_Length; 378             int[] numArray = new int[p_Length]; 379             byte[] destinationArray = null; 380             int num3 = 0; 381             for (int i = p_StartIndex; i < length; i++) 382             { 383                 if (sourceArray[i] > 0x7f) 384                 { 385                     num3++; 386                     if (num3 == 3) 387                     { 388                         num3 = 1; 389                     } 390                 } 391                 else 392                 { 393                     num3 = 0; 394                 } 395                 numArray[i] = num3; 396             } 397             if ((sourceArray[length - 1] > 0x7f) && (numArray[p_Length - 1] == 1)) 398             { 399                 num2 = p_Length + 1; 400             } 401             destinationArray = new byte[num2]; 402             Array.Copy(sourceArray, p_StartIndex, destinationArray, 0, num2); 403             return (Encoding.Default.GetString(destinationArray) + p_TailString); 404         } 405         #endregion 406  407         #region 删除最后结尾的一个逗号 408         /// <summary> 409         /// 删除最后结尾的一个逗号 410         /// </summary> 411         public static string DelLastComma(string str) 412         { 413             return str.Substring(0, str.LastIndexOf(",")); 414         } 415         #endregion 416  417         #region 删除最后结尾的指定字符后的字符 418         /// <summary> 419         /// 删除最后结尾的指定字符后的字符 420         /// </summary> 421         public static string DelLastChar(string str, string strchar) 422         { 423             if (string.IsNullOrEmpty(str)) 424                 return ""; 425             if (str.LastIndexOf(strchar) >= 0 && str.LastIndexOf(strchar) == str.Length - 1) 426             { 427                 return str.Substring(0, str.LastIndexOf(strchar)); 428             } 429             return str; 430         } 431         #endregion 432  433         #region 生成指定长度的字符串 434         /// <summary> 435         /// 生成指定长度的字符串,即生成strLong个str字符串 436         /// </summary> 437         /// <param name="strLong">生成的长度</param> 438         /// <param name="str">以str生成字符串</param> 439         /// <returns></returns> 440         public static string StringOfChar(int strLong, string str) 441         { 442             string ReturnStr = ""; 443             for (int i = 0; i < strLong; i++) 444             { 445                 ReturnStr += str; 446             } 447  448             return ReturnStr; 449         } 450         #endregion 451  452         #region 生成日期随机码 453         /// <summary> 454         /// 生成日期随机码 455         /// </summary> 456         /// <returns></returns> 457         public static string GetRamCode() 458         { 459             #region 460             return DateTime.Now.ToString("yyyyMMddHHmmssffff"); 461             #endregion 462         } 463         #endregion 464  465         #region 生成随机字母或数字 466         /// <summary> 467         /// 生成随机数字 468         /// </summary> 469         /// <param name="length">生成长度</param> 470         /// <returns></returns> 471         public static string Number(int Length) 472         { 473             return Number(Length, false); 474         } 475  476         /// <summary> 477         /// 生成随机数字 478         /// </summary> 479         /// <param name="Length">生成长度</param> 480         /// <param name="Sleep">是否要在生成前将当前线程阻止以避免重复</param> 481         /// <returns></returns> 482         public static string Number(int Length, bool Sleep) 483         { 484             if (Sleep) 485                 System.Threading.Thread.Sleep(3); 486             string result = ""; 487             System.Random random = new Random(); 488             for (int i = 0; i < Length; i++) 489             { 490                 result += random.Next(10).ToString(); 491             } 492             return result; 493         }

帮助类系列上