public static class StringUtil
{
/// <summary>
/// 获取随机数种子
/// </summary>
private static int GetRandomSeed()
{
byte[] bytes = new byte[4];
System.Security.Cryptography.RNGCryptoServiceProvider rng = new System.Security.Cryptography.RNGCryptoServiceProvider();
rng.GetBytes(bytes);
return BitConverter.ToInt32(bytes, 0);
}
/// <summary>
/// 随机数
/// </summary>
/// <param name="num">随机数位数</param>
/// <returns></returns>
public static string CreateRandom(int num)
{
StringBuilder randonBulider = new StringBuilder();
Random rand = new Random(GetRandomSeed());
string temp;
for (int i = 0; i < num; i++)
{
temp = rand.Next(0, 9).ToString();
randonBulider.Append(temp);
}
return randonBulider.ToString();
}
private static char[]
PwdRandom ={
'0','1','2','3','4','5','6','7','8','9',
'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z',
'A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z'
};
/// <summary>
/// 创建随机密码
/// </summary>
/// <param name="length">密码长度</param>
/// <returns></returns>
public static string CreateRandomPassword(int length)
{
System.Text.StringBuilder newRandom = new System.Text.StringBuilder(62);
Random rd = new Random();
for (int i = 0; i < length; i++)
{
newRandom.Append(PwdRandom[rd.Next(62)]);
}
return newRandom.ToString();
}
/// <summary>
/// 转换成货币形式,保留两位小数
/// </summary>
/// <param name="o"></param>
/// <returns></returns>
public static string ToMoney(object o)
{
return Common.ValidityUtil.IsNullOrDBNull(o) ? "0.00" : Convert.ToDecimal(o).ToString("N");
}
/// <summary>
/// 只取整数部分。
/// </summary>
/// <param name="o"></param>
/// <returns></returns>
public static string ToFloor(object o)
{
if (ValidityUtil.IsNullOrDBNull(o))
{
return "0";
}
else
{
string str = o.ToString();
int n = str.IndexOf(".");
return str.Substring(0, n);
// Math.Floor((decimal)o);
}
}
/// <summary>
/// 对字符串数组进行希尔排序。
/// </summary>
/// <param name="list">字符串数组。</param>
public static void StringSort(string[] list)
{
int inc;
for (inc = 1; inc <= list.Length / 9; inc = 3 * inc + 1) ;
for (; inc > 0; inc /= 3)
{
for (int i = inc + 1; i <= list.Length; i += inc)
{
string t = list[i - 1];
int j = i;
while ((j > inc) && (list[j - inc - 1].CompareTo(t) > 0))
{
list[j - 1] = list[j - inc - 1];
j -= inc;
}
list[j - 1] = t;
}
}
}
/// <summary>
/// 对int型数组进行希尔排序。
/// </summary>
/// <param name="list">int型数组。</param>
public static void NumSort(int[] list)
{
int inc;
for (inc = 1; inc <= list.Length / 9; inc = 3 * inc + 1) ;
for (; inc > 0; inc /= 3)
{
for (int i = inc + 1; i <= list.Length; i += inc)
{
int t = list[i - 1];
int j = i;
while ((j > inc) && (list[j - inc - 1] > t))
{
list[j - 1] = list[j - inc - 1];
j -= inc;
}
list[j - 1] = t;
}
}
}
private static string GetPYChar(string c)
{
byte[] array = new byte[2];
array = System.Text.Encoding.Default.GetBytes(c);
int i = (short)(array[0] - '\0') * 256 + ((short)(array[1] - '\0'));
if (i < 0xB0A1) return "*";
if (i < 0xB0C5) return "a";
if (i < 0xB2C1) return "b";
if (i < 0xB4EE) return "c";
if (i < 0xB6EA) return "d";
if (i < 0xB7A2) return "e";
if (i < 0xB8C1) return "f";
if (i < 0xB9FE) return "g";
if (i < 0xBBF7) return "h";
if (i < 0xBFA6) return "g";
if (i < 0xC0AC) return "k";
if (i < 0xC2E8) return "l";
if (i < 0xC4C3) return "m";
if (i < 0xC5B6) return "n";
if (i < 0xC5BE) return "o";
if (i < 0xC6DA) return "p";
if (i < 0xC8BB) return "q";
if (i < 0xC8F6) return "r";
if (i < 0xCBFA) return "s";
if (i < 0xCDDA) return "t";
if (i < 0xCEF4) return "w";
if (i < 0xD1B9) return "x";
if (i < 0xD4D1) return "y";
if (i < 0xD7FA) return "z";
return "*";
}
/// <summary>
/// 转换成拼音
/// </summary>
/// <param name="str"></param>
/// <returns></returns>
public static string ConvertToPY(string str)
{
string tempStr = "";
foreach (char c in str)
{
if ((int)c >= 33 && (int)c <= 126)
{
//字母和符号原样保留
tempStr += c.ToString();
}
else
{
//累加拼音声母
tempStr += GetPYChar(c.ToString());
}
}
return tempStr;
}
/// <summary>
/// 去除重复项
/// </summary>
/// <param name="ArrInput"></param>
/// <returns></returns>
public static string[] RemoveDuplicate(string[] ArrInput)
{
ArrayList nStr = new ArrayList();
for (int i = 0; i < ArrInput.Length; i++)
{
if (!nStr.Contains(ArrInput[i]))
{
nStr.Add(ArrInput[i]);
}
}
return (string[])nStr.ToArray(typeof(string));
}
#region 过滤掉重复的关键字
/// <summary>
/// 过滤掉重复的关键字
/// </summary>
/// <param name="content"></param>
/// <returns></returns>
public static string GetKeyword(string content)
{
string[] keys = content.Replace(",", ",").Split(',');
System.Collections.ArrayList list = new System.Collections.ArrayList();
for (int i = 0; i < keys.Length; i++)
{
if (keys[i] != string.Empty && list.IndexOf(keys[i]) == -1)
{
list.Add(keys[i]);
}
}
string keyword = string.Empty;
foreach (string key in list)
{
keyword += key + ",";
}
if (keyword.EndsWith(","))
{
keyword = keyword.Substring(0, keyword.Length - 1);
}
return keyword;
}
#endregion
}