123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152 |
- using System;
- using System.Collections.Generic;
- using System.Data;
- using System.IO;
- using System.IO.Compression;
- using System.Reflection;
- using System.Text;
- using System.Linq;
- using System.Security.Cryptography;
- namespace WWPipeLine.Commons
- {
- public class StringEx
- {
- ///<summary>
- ///生成随机字符串
- ///</summary>
- ///<param name="length">目标字符串的长度</param>
- ///<param name="useNum">是否包含数字,1=包含,默认为包含</param>
- ///<param name="useLow">是否包含小写字母,1=包含,默认为包含</param>
- ///<param name="useUpp">是否包含大写字母,1=包含,默认为包含</param>
- ///<param name="useSpe">是否包含特殊字符,1=包含,默认为不包含</param>
- ///<param name="custom">要包含的自定义字符,直接输入要包含的字符列表</param>
- ///<returns>指定长度的随机字符串</returns>
- public static string GetRandomString(int length, bool useNum, bool useLow, bool useUpp, bool useSpe, string custom)
- {
- byte[] b = new byte[4];
- new System.Security.Cryptography.RNGCryptoServiceProvider().GetBytes(b);
- Random r = new Random(BitConverter.ToInt32(b, 0));
- string s = null, str = custom;
- if (useNum == true) { str += "0123456789"; }
- if (useLow == true) { str += "abcdefghijklmnopqrstuvwxyz"; }
- if (useUpp == true) { str += "ABCDEFGHIJKLMNOPQRSTUVWXYZ"; }
- if (useSpe == true) { str += "!\"#$%&'()*+,-./:;<=>?@[\\]^_`{|}~"; }
- for (int i = 0; i < length; i++)
- {
- s += str.Substring(r.Next(0, str.Length - 1), 1);
- }
- return s;
- }
- /// <summary>
- /// 字符串压缩
- /// </summary>
- /// <param name="strSource"></param>
- /// <returns></returns>
- public static byte[] Compress(byte[] data)
- {
- try
- {
- MemoryStream ms = new MemoryStream();
- GZipStream zip = new GZipStream(ms, CompressionMode.Compress, true);
- zip.Write(data, 0, data.Length);
- zip.Close();
- byte[] buffer = new byte[ms.Length];
- ms.Position = 0;
- ms.Read(buffer, 0, buffer.Length);
- ms.Close();
- return buffer;
- }
- catch (Exception e)
- {
- throw new Exception(e.Message);
- }
- }
- /// <summary>
- /// 字符串解压缩
- /// </summary>
- /// <param name="strSource"></param>
- /// <returns></returns>
- public static byte[] Decompress(byte[] data)
- {
- try
- {
- MemoryStream ms = new MemoryStream(data);
- GZipStream zip = new GZipStream(ms, CompressionMode.Decompress, true);
- MemoryStream msreader = new MemoryStream();
- byte[] buffer = new byte[0x1000];
- while (true)
- {
- int reader = zip.Read(buffer, 0, buffer.Length);
- if (reader <= 0)
- {
- break;
- }
- msreader.Write(buffer, 0, reader);
- }
- zip.Close();
- ms.Close();
- msreader.Position = 0;
- buffer = msreader.ToArray();
- msreader.Close();
- return buffer;
- }
- catch (Exception e)
- {
- throw new Exception(e.Message);
- }
- }
- public static string CompressString(string str)
- {
- string compressString = "";
- byte[] compressBeforeByte = Encoding.GetEncoding("UTF-8").GetBytes(str);
- byte[] compressAfterByte = Compress(compressBeforeByte);
- //compressString = Encoding.GetEncoding("UTF-8").GetString(compressAfterByte);
- compressString = Convert.ToBase64String(compressAfterByte);
- return compressString;
- }
- public static string DecompressString(string str)
- {
- string compressString = "";
- //byte[] compressBeforeByte = Encoding.GetEncoding("UTF-8").GetBytes(str);
- byte[] compressBeforeByte = Convert.FromBase64String(str);
- byte[] compressAfterByte = Decompress(compressBeforeByte);
- compressString = Encoding.GetEncoding("UTF-8").GetString(compressAfterByte);
- return compressString;
- }
- public static string[] setToLower(List<string> listStr)
- {
- if (listStr is null) return new string[] { "" };
- List<string> strList = new List<string>();
- foreach (string s in listStr.ToArray())
- {
- strList.Add(s.ToLower());
- }
- return strList.ToArray();
- }
- public static string[] setToLower(string[] listStr)
- {
- if (listStr is null) return new string[] { "" };
- List<string> strList = new List<string>();
- foreach (string s in listStr)
- {
- strList.Add(s.ToLower());
- }
- return strList.ToArray();
- }
- public static List<string> setToLowerList(List<string> listStr)
- {
- List<string> strList = new List<string>();
- foreach (string s in listStr.ToArray())
- {
- strList.Add(s.ToLower());
- }
- return strList;
- }
-
- }
- }
|