您的位置:首页 > 其它

字符串处理帮助类

2013-12-26 11:34 113 查看
using System;
using System.Security.Cryptography;
using System.Text;
using System.Text.RegularExpressions;
using System.Threading;
using System.Web;

namespace Components
{
public class StrHelp
{
/// <summary>
/// MD5 32位加密
/// </summary>
/// <param name="str"></param>
/// <returns></returns>
public static string Md532(string str)
{
byte[] b = Encoding.Default.GetBytes(str);
b = new MD5CryptoServiceProvider().ComputeHash(b);
string ret = "";
for (int i = 0; i < b.Length; i++)
ret += b[i].ToString("x").PadLeft(2, '0');
return ret;
}

/// <summary>
/// MD5 16位加密
/// </summary>
/// <param name="ConvertString"></param>
/// <returns></returns>
public static string Md516(string str)
{
MD5CryptoServiceProvider md5 = new MD5CryptoServiceProvider();
string t2 = BitConverter.ToString(md5.ComputeHash(UTF8Encoding.Default.GetBytes(str)), 4, 8);
t2 = t2.Replace("-", "");
t2 = t2.ToLower();
return t2;
}

/// <summary>
/// 统计char出现在string中的次数
/// </summary>
/// <param name="str">字符串</param>
/// <param name="chr">字符</param>
/// <returns></returns>
public static int CharCount(string str, char chr)
{
int i = 0;
for (int j = 0; j < str.Length; j++)
{
if (str[j] == chr)
{
i++;
}
}
return i;
}

#region 随机字符串
public static string MakeFileRndName()
{
return (DateTime.Now.ToString("ddHHmmss") + MakeRandomString("0123456789", 4));
//return (DateTime.Now.ToString("yyyyMMddHHmmss") + MakeRandomString("0123456789", 4));
}

public static string MakeFolderName()
{
return DateTime.Now.ToString("yyyyMM");
}

public static string MakeRandomString(int pwdlen)
{
return MakeRandomString("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_*", pwdlen);
}

public static string MakeRandomString(string pwdchars, int pwdlen)
{
StringBuilder builder = new StringBuilder();
Random random = new Random();
for (int i = 0; i < pwdlen; i++)
{
int num = random.Next(pwdchars.Length);
builder.Append(pwdchars[num]);
}
return builder.ToString();
}

public static string RandomNum()
{
return RandomNum(4);
}

public static string RandomNum(int intlong)
{
Random random = new Random();
StringBuilder builder = new StringBuilder("");
for (int i = 0; i < intlong; i++)
{
builder.Append(random.Next(10));
}
return builder.ToString();
}
#endregion

/// <summary>
/// 获取客户的IP地址
/// </summary>
/// <returns>客户的IP地址</returns>
public static string GetIPAddress()
{
#region
string result = HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"];
if (string.IsNullOrEmpty(result))
{
result = HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"];
}
if (string.IsNullOrEmpty(result))
{
result = HttpContext.Current.Request.UserHostAddress;
}

return result;
#endregion
}

/// <summary>
/// 生成邮件验证码
/// </summary>
/// <param name="len"></param>
/// <returns></returns>
public static string CreateAuthStr(int len)
{
#region
int number;
StringBuilder checkCode = new StringBuilder();
Random random = new Random();
for (int i = 0; i < len; i++)
{
number = random.Next();

if (number % 2 == 0)
{
checkCode.Append((char)('0' + (char)(number % 10)));
}
else
{
checkCode.Append((char)('A' + (char)(number % 26)));
}
}
return checkCode.ToString();
#endregion
}

/// <summary>
/// 截取字符串优化版
/// </summary>
/// <param name="str">所要截取的字符串</param>
/// <param name="length">截取字符串的长度</param>
/// <returns></returns>
public static string CutString(string str, int length, bool appendText)
{
#region
Regex regex = new Regex("[\u4e00-\u9fa5]+", RegexOptions.Compiled);
char[] stringChar = str.ToCharArray();
StringBuilder sb = new StringBuilder();
int nLength = 0;
bool isCut = false;
for (int i = 0; i < stringChar.Length; i++)
{
if (regex.IsMatch((stringChar[i]).ToString()))
{
sb.Append(stringChar[i]);
nLength += 2;
}
else
{
sb.Append(stringChar[i]);
nLength = nLength + 1;
}

if (nLength > length)
{
isCut = true;
break;
}
}
if (isCut)
if (appendText)
{
return sb.ToString() + "...";
}
else
{
return sb.ToString();
}
else
return sb.ToString();
#endregion
}

/// <summary>
/// 半角转全角
/// </summary>
/// <param name="BJstr"></param>
/// <returns></returns>
public static string GetQuanJiao(string BJstr)
{
#region
char[] c = BJstr.ToCharArray();
for (int i = 0; i < c.Length; i++)
{
byte[] b = System.Text.Encoding.Unicode.GetBytes(c, i, 1);
if (b.Length == 2)
{
if (b[1] == 0)
{
b[0] = (byte)(b[0] - 32);
b[1] = 255;
c[i] = System.Text.Encoding.Unicode.GetChars(b)[0];
}
}
}
string strNew = new string(c);
return strNew;
#endregion
}

/// <summary>
/// 全角转半角
/// </summary>
/// <param name="QJstr"></param>
/// <returns></returns>
public static string GetBanJiao(string QJstr)
{
#region
char[] c = QJstr.ToCharArray();
for (int i = 0; i < c.Length; i++)
{
byte[] b = System.Text.Encoding.Unicode.GetBytes(c, i, 1);
if (b.Length == 2)
{
if (b[1] == 255)
{
b[0] = (byte)(b[0] + 32);
b[1] = 0;
c[i] = System.Text.Encoding.Unicode.GetChars(b)[0];
}
}
}
string strNew = new string(c);
return strNew;
#endregion
}

/// <summary>
/// 字符串转换为 html
/// </summary>
/// <param name="str"></param>
/// <returns></returns>
public static string StringToHtml(string str)
{
#region
str = str.Replace("&", "&");
str = str.Replace(" ", " ");
str = str.Replace("'", "''");
str = str.Replace("\"", """);
str = str.Replace(" ", " ");
str = str.Replace("<", "<");
str = str.Replace(">", ">");
str = str.Replace("\r\n", "<br>");

return str;
#endregion
}

/// <summary>
/// html转换成字符串
/// </summary>
/// <param name="strHtml"></param>
/// <returns></returns>
public static string HtmlToString(string strHtml)
{
#region
strHtml = strHtml.Replace("<br>", "\r\n");
strHtml = strHtml.Replace(@"<br />", "\r\n");
strHtml = strHtml.Replace(@"<br/>", "\r\n");
strHtml = strHtml.Replace(">", ">");
strHtml = strHtml.Replace("<", "<");
strHtml = strHtml.Replace(" ", " ");
strHtml = strHtml.Replace(""", "\"");
strHtml = Regex.Replace(strHtml, @"<\/?[^>]+>", "", RegexOptions.IgnoreCase);
return strHtml;
#endregion
}

/// <summary>
/// 来路地址
/// </summary>
/// <returns></returns>
public static string GetReferer()
{
return HttpContext.Current.Request.ServerVariables["HTTP_REFERER"];
}

/// <summary>
/// 绝对路径(并非项目所以路径,项目所以路径的上一级目录)
/// </summary>
/// <returns></returns>
public static string GetPhysicalPath()
{
string Path = HttpContext.Current.Request.ServerVariables["APPL_PHYSICAL_PATH"];
//Path = Path.Substring(0, Path.LastIndexOf('\\'));
//Path = Path.Substring(0, Path.LastIndexOf('\\'));
return Path;
}

public static string ClearHtml(string Html)
{
if (Html == string.Empty || string.IsNullOrEmpty(Html))
return "";
Regex RegexFrame = new Regex(@"<\/*[^<>]*>", RegexOptions.IgnoreCase);
return RegexFrame.Replace(Html, string.Empty).Replace(" ", string.Empty);
}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: