首页 > 代码库 > 帮助类系列上
帮助类系列上
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 }
帮助类系列上
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。