zoukankan      html  css  js  c++  java
  • 字符串处理帮助类

    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("
    ", "<br>");
    
                return str;
                #endregion
            }
    
            /// <summary>
            /// html转换成字符串
            /// </summary>
            /// <param name="strHtml"></param>
            /// <returns></returns>
            public static string HtmlToString(string strHtml)
            {
                #region
                strHtml = strHtml.Replace("<br>", "
    ");
                strHtml = strHtml.Replace(@"<br />", "
    ");
                strHtml = strHtml.Replace(@"<br/>", "
    ");
                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);
            }
        }
    }
    
  • 相关阅读:
    MongoDB 释放磁盘空间 db.runCommand({repairDatabase: 1 })
    RK 调试笔记
    RK Android7.1 拨号
    RK Android7.1 移植gt9271 TP偏移
    RK Android7.1 定制化 itvbox 盒子Launcher
    RK Android7.1 双屏显示旋转方向
    RK Android7.1 设置 内存条作假
    RK Android7.1 设置 蓝牙 已断开连接
    RK Android7.1 进入Camera2 亮度会增加
    RK 3128 调触摸屏 TP GT9XX
  • 原文地址:https://www.cnblogs.com/systemnet123/p/3492056.html
Copyright © 2011-2022 走看看