zoukankan      html  css  js  c++  java
  • C# 一些常用的字符串扩展方法

    以下可能是常用的.net扩展方法,记录下

    EString.cs文件

    /// <summary>
        /// 扩展字符串类
        /// </summary>
        public static class EString
        {
            #region 数据转换
    
            #region 转Int
            /// <summary>
            /// 转Int,失败返回0
            /// </summary>
            /// <param name="e"></param>
            /// <returns></returns>
            public static int ToInt(this string t)
            {
                int n;
                if (!int.TryParse(t, out n))
                    return 0;
                return n;
            }
    
            /// <summary>
            /// 转Int,失败返回pReturn
            /// </summary>
            /// <param name="e"></param>
            /// <param name="pReturn">失败返回的值</param>
            /// <returns></returns>
            public static int ToInt(this string t, int pReturn)
            {
                int n;
                if (!int.TryParse(t, out n))
                    return pReturn;
                return n;
            }
    
            /// <summary>
            /// 是否是Int true:是 false:否
            /// </summary>
            /// <param name="t"></param>
            /// <returns></returns>
            public static bool IsInt(this string t)
            {
                int n;
                return int.TryParse(t, out n);
            }
            #endregion
    
            #region 转Int16
            /// <summary>
            /// 转Int,失败返回0
            /// </summary>
            /// <param name="e"></param>
            /// <returns></returns>
            public static Int16 ToInt16(this string t)
            {
                Int16 n;
                if (!Int16.TryParse(t, out n))
                    return 0;
                return n;
            }
    
            /// <summary>
            /// 转Int,失败返回pReturn
            /// </summary>
            /// <param name="e"></param>
            /// <param name="pReturn">失败返回的值</param>
            /// <returns></returns>
            public static Int16 ToInt16(this string t, Int16 pReturn)
            {
                Int16 n;
                if (!Int16.TryParse(t, out n))
                    return pReturn;
                return n;
            }
    
            /// <summary>
            /// 是否是Int true:是 false:否
            /// </summary>
            /// <param name="t"></param>
            /// <returns></returns>
            public static bool IsInt16(this string t)
            {
                Int16 n;
                return Int16.TryParse(t, out n);
            }
            #endregion
    
            #region 转byte
            /// <summary>
            /// 转byte,失败返回0
            /// </summary>
            /// <param name="e"></param>
            /// <returns></returns>
            public static byte Tobyte(this string t)
            {
                byte n;
                if (!byte.TryParse(t, out n))
                    return 0;
                return n;
            }
    
            /// <summary>
            /// 转byte,失败返回pReturn
            /// </summary>
            /// <param name="e"></param>
            /// <param name="pReturn">失败返回的值</param>
            /// <returns></returns>
            public static byte Tobyte(this string t, byte pReturn)
            {
                byte n;
                if (!byte.TryParse(t, out n))
                    return pReturn;
                return n;
            }
    
            /// <summary>
            /// 是否是byte true:是 false:否
            /// </summary>
            /// <param name="t"></param>
            /// <returns></returns>
            public static bool Isbyte(this string t)
            {
                byte n;
                return byte.TryParse(t, out n);
            }
            #endregion
    
            #region 转Long
            /// <summary>
            /// 转Long,失败返回0
            /// </summary>
            /// <param name="e"></param>
            /// <returns></returns>
            public static long ToLong(this string t)
            {
    
                long n;
                if (!long.TryParse(t, out n))
                    return 0;
                return n;
            }
    
            /// <summary>
            /// 转Long,失败返回pReturn
            /// </summary>
            /// <param name="e"></param>
            /// <param name="pReturn">失败返回的值</param>
            /// <returns></returns>
            public static long ToLong(this string t, long pReturn)
            {
                long n;
                if (!long.TryParse(t, out n))
                    return pReturn;
                return n;
            }
    
            /// <summary>
            /// 是否是Long true:是 false:否
            /// </summary>
            /// <param name="t"></param>
            /// <returns></returns>
            public static bool IsLong(this string t)
            {
                long n;
                return long.TryParse(t, out n);
            }
            #endregion
    
            #region 转Double
            /// <summary>
            /// 转Int,失败返回0
            /// </summary>
            /// <param name="e"></param>
            /// <returns></returns>
            public static double ToDouble(this string t)
            {
                double n;
                if (!double.TryParse(t, out n))
                    return 0;
                return n;
            }
    
            /// <summary>
            /// 转Double,失败返回pReturn
            /// </summary>
            /// <param name="e"></param>
            /// <param name="pReturn">失败返回的值</param>
            /// <returns></returns>
            public static double ToDouble(this string t, double pReturn)
            {
                double n;
                if (!double.TryParse(t, out n))
                    return pReturn;
                return n;
            }
    
            /// <summary>
            /// 是否是Double true:是 false:否
            /// </summary>
            /// <param name="t"></param>
            /// <returns></returns>
            public static bool IsDouble(this string t)
            {
                double n;
                return double.TryParse(t, out n);
            }
            #endregion
    
            #region 转Decimal
            /// <summary>
            /// 转Decimal,失败返回0
            /// </summary>
            /// <param name="e"></param>
            /// <returns></returns>
            public static decimal ToDecimal(this string t)
            {
                decimal n;
                if (!decimal.TryParse(t, out n))
                    return 0;
                return n;
            }
    
            /// <summary>
            /// 转Decimal,失败返回pReturn
            /// </summary>
            /// <param name="e"></param>
            /// <param name="pReturn">失败返回的值</param>
            /// <returns></returns>
            public static decimal ToDecimal(this string t, decimal pReturn)
            {
                decimal n;
                if (!decimal.TryParse(t, out n))
                    return pReturn;
                return n;
            }
    
            /// <summary>
            /// 是否是Decimal true:是 false:否
            /// </summary>
            /// <param name="t"></param>
            /// <returns></returns>
            public static bool IsDecimal(this string t)
            {
                decimal n;
                return decimal.TryParse(t, out n);
            }
            #endregion
    
            #region 转DateTime
            /// <summary>
            /// 转DateTime,失败返回当前时间
            /// </summary>
            /// <param name="e"></param>
            /// <returns></returns>
            public static DateTime ToDateTime(this string t)
            {
                DateTime n;
                if (!DateTime.TryParse(t, out n))
                    return DateTime.Now;
                return n;
            }
    
            /// <summary>
            /// 转DateTime,失败返回pReturn
            /// </summary>
            /// <param name="e"></param>
            /// <param name="pReturn">失败返回的值</param>
            /// <returns></returns>
            public static DateTime ToDateTime(this string t, DateTime pReturn)
            {
                DateTime n;
                if (!DateTime.TryParse(t, out n))
                    return pReturn;
                return n;
            }
    
            /// <summary>
            /// 转DateTime,失败返回pReturn
            /// </summary>
            /// <param name="e"></param>
            /// <param name="pReturn">失败返回的值</param>
            /// <returns></returns>
            public static string ToDateTime(this string t, string pFormat, string pReturn)
            {
                DateTime n;
                if (!DateTime.TryParse(t, out n))
                    return pReturn;
                return n.ToString(pFormat);
            }
    
            /// <summary>
            /// 转DateTime,失败返回空
            /// </summary>
            /// <param name="e"></param>
            /// <param name="pReturn">失败返回的值</param>
            /// <returns></returns>
            public static string ToDateTime(this string t, string pFormat)
            {
                return t.ToDateTime(pFormat, string.Empty);
            }
    
            public static string ToShortDateTime(this string t)
            {
                return t.ToDateTime("yyyy-MM-dd", string.Empty);
            }
    
            /// <summary>
            /// 是否是DateTime true:是 false:否
            /// </summary>
            /// <param name="t"></param>
            /// <returns></returns>
            public static bool IsDateTime(this string t)
            {
                DateTime n;
                return DateTime.TryParse(t, out n);
            }
            #endregion
    
            #region 与int[]相关
            /// <summary>
            /// 转int[],字符串以逗号(,)隔开,请确保字符串内容都合法,否则会出错
            /// </summary>
            /// <param name="pStr"></param>
            /// <returns></returns>
            public static int[] ToIntArr(this string t)
            {
                return t.ToIntArr(new char[] { ',' });
            }
    
            /// <summary>
            /// 转int[],字符串以逗号(,)隔开,请确保字符串内容都合法,否则会出错
            /// </summary>
            /// <param name="t"></param>
            /// <param name="pSplit">隔开的</param>
            /// <returns></returns>
            public static int[] ToIntArr(this string t, char[] pSplit)
            {
                if (t.Length == 0)
                {
                    return new int[] { };
                }
    
                string[] ArrStr = t.Split(pSplit, StringSplitOptions.None);
                int[] iStr = new int[ArrStr.Length];
    
                for (int i = 0; i < ArrStr.Length; i++)
                    iStr[i] = int.Parse(ArrStr[i]);
    
                return iStr;
            }
    
    
            #endregion
    
            #region 过滤字符串的非int,重新组合成字符串
            /// <summary>
            /// 过滤字符串的非int,重新组合成字符串
            /// </summary>
            /// <param name="t"></param>
            /// <param name="pSplit">分隔符</param>
            /// <returns></returns>
            public static string ClearNoInt(this string t, char pSplit)
            {
                string sStr = string.Empty;
                string[] ArrStr = t.Split(pSplit);
    
                for (int i = 0; i < ArrStr.Length; i++)
                {
                    string lsStr = ArrStr[i];
    
                    if (lsStr.IsInt())
                        sStr += lsStr + pSplit;
                    else
                        continue;
                }
    
                if (sStr.Length > 0)
                    sStr = sStr.TrimEnd(pSplit);
    
                return sStr;
            }
    
            /// <summary>
            /// 过滤字符串的非int,重新组合成字符串
            /// </summary>
            /// <param name="t"></param>
            /// <returns></returns>
            public static string ClearNoInt(this string t)
            {
                return t.ClearNoInt(',');
            }
            #endregion
    
            #region 是否可以转换成int[]
            /// <summary>
            /// 是否可以转换成int[],true:是,false:否
            /// </summary>
            /// <param name="t"></param>
            /// <param name="pSplit">分隔符</param>
            /// <returns></returns>
            public static bool IsIntArr(this string t, char pSplit)
            {
                string[] ArrStr = t.Split(pSplit);
                bool b = true;
    
                for (int i = 0; i < ArrStr.Length; i++)
                {
                    if (!ArrStr[i].IsInt())
                    {
                        b = false;
                        break;
                    }
                }
    
                return b;
            }
    
            /// <summary>
            /// 是否可以转换成int[],true:是,false:否
            /// </summary>
            /// <param name="t"></param>
            /// <returns></returns>
            public static bool IsIntArr(this string t)
            {
                return t.IsIntArr(',');
            }
            #endregion
    
            #endregion
    
            #region 载取左字符
            /// <summary>
            /// 载取左字符
            /// </summary>
            /// <param name="t"></param>
            /// <param name="pLen">字符个数</param>
            /// <param name="pReturn">超出时后边要加的返回的内容</param>
            /// <returns></returns>
            public static string Left(this string t, int pLen, string pReturn)
            {
                if (t == null || t.Length == 0)
                    return string.Empty;
                pLen *= 2;
                int i = 0, j = 0;
                foreach (char c in t)
                {
                    if (c > 127)
                    {
                        i += 2;
                    }
                    else
                    {
                        i++;
                    }
    
                    if (i > pLen)
                    {
                        return t.Substring(0, j) + pReturn;
                    }
    
                    j++;
                }
    
                return t;
            }
    
            public static string Left(this string t, int pLen)
            {
                return Left(t, pLen, string.Empty);
            }
    
            public static string StrLeft(this string t, int pLen)
            {
                if (t == null)
                {
                    return "";
                }
                if (t.Length > pLen)
                {
                    return t.Substring(0, pLen);
                }
                return t;
            }
            #endregion
    
            #region 删除文件名或路径的特殊字符
    
            private class ClearPathUnsafeList
            {
                public static readonly string[] unSafeStr = { "/", "\", ":", "*", "?", """, "<", ">", "|" };
            }
    
            /// <summary>
            /// 删除文件名或路径的特殊字符
            /// </summary>
            /// <param name="t"></param>
            /// <returns></returns>
            public static string ClearPathUnsafe(this string t)
            {
                foreach (string s in ClearPathUnsafeList.unSafeStr)
                {
                    t = t.Replace(s, "");
                }
    
                return t;
            }
            #endregion
    
            #region 字符串真实长度 如:一个汉字为两个字节
            /// <summary>
            /// 字符串真实长度 如:一个汉字为两个字节
            /// </summary>
            /// <param name="s"></param>
            /// <returns></returns>
            public static int LengthReal(this string s)
            {
                return Encoding.Default.GetBytes(s).Length;
            }
            #endregion
    
            #region 去除小数位最后为0的
            /// <summary>
            /// 去除小数位最后为0的
            /// </summary>
            /// <param name="t"></param>
            /// <returns></returns>
            public static decimal ClearDecimal0(this string t)
            {
                decimal d;
                if (decimal.TryParse(t, out d))
                {
                    return decimal.Parse(double.Parse(d.ToString("g")).ToString());
                }
                return 0;
            }
            #endregion
    
            #region 进制转换
            /// <summary>
            /// 16进制转二进制
            /// </summary>
            /// <param name="t"></param>
            /// <returns></returns>
            public static string Change16To2(this string t)
            {
                String BinOne = string.Empty;
                String BinAll = string.Empty;
                char[] nums = t.ToCharArray();
                for (int i = 0; i < nums.Length; i++)
                {
                    string number = nums[i].ToString();
                    int num = Int32.Parse(number, System.Globalization.NumberStyles.HexNumber);
    
                    BinOne = Convert.ToString(num, 2).PadLeft(4, '0');
                    BinAll = BinAll + BinOne;
                }
                return BinAll;
            }
    
            /// <summary>
            /// 二进制转十进制
            /// </summary>
            /// <param name="t"></param>
            /// <returns></returns>
            public static Int64 Change2To10(this string t)
            {
                char[] arrc = t.ToCharArray();
                Int64 all = 0, indexC = 1;
                for (int i = arrc.Length - 1; i >= 0; i--)
                {
                    if (arrc[i] == '1')
                    {
                        all += indexC;
                    }
                    indexC = indexC * 2;
                }
    
                return all;
            }
    
            /// <summary>
            /// 二进制转换byte[]数组
            /// </summary>
            /// <param name="s"></param>
            /// <returns></returns>
            public static byte[] Change2ToBytes(this string t)
            {
                List<byte> list = new List<byte>();
    
                char[] arrc = t.ToCharArray();
                byte n = 0;
                char c;
                int j = 0;
                //倒序获取位
                for (int i = arrc.Length - 1; i >= 0; i--)
                {
                    c = arrc[i];
    
                    if (c == '1')
                    {
                        n += Convert.ToByte(Math.Pow(2, j));
                    }
                    j++;
    
                    if (j % 8 == 0)
                    {
                        list.Add(n);
                        j = 0;
                        n = 0;
                    }
                }
    
                //剩余最高位
                if (n > 0)
                    list.Add(n);
    
                byte[] arrb = new byte[list.Count];
    
                int j1 = 0;
                //倒序
                for (int i = list.Count - 1; i >= 0; i--)
                {
                    arrb[j1] = list[i];
                    j1++;
                }
                return arrb;
            }
    
            /// <summary>
            /// 二进制转化为索引id数据,从右到左
            /// </summary>
            /// <param name="t"></param>
            /// <returns></returns>
            public static int[] Change2ToIndex(this string t)
            {
                List<int> list = new List<int>();
                char[] arrc = t.ToCharArray();
                char c;
                int j = 0;
    
                //倒序获取位
                for (int i = arrc.Length - 1; i >= 0; i--)
                {
                    j++;
                    c = arrc[i];
    
                    if (c == '1')
                    {
                        list.Add(j);
                    }
                }
    
                return list.ToArray();
            }
            #endregion
    
            #region html url编码 解码
            /// <summary>
            /// Html Encode
            /// </summary>
            /// <param name="pStr"></param>
            /// <returns></returns>
            public static string HtmlEncode(this string t)
            {
                return HttpContext.Current.Server.HtmlEncode(t);
            }
    
            /// <summary>
            /// Html Decode
            /// </summary>
            /// <param name="pStr"></param>
            /// <returns></returns>
            public static string HtmlDecode(this string t)
            {
                return HttpContext.Current.Server.HtmlDecode(t);
            }
    
            /// <summary>
            /// URL Encode
            /// </summary>
            /// <param name="pStr"></param>
            /// <returns></returns>
            public static string URLEncode(this string t)
            {
                return HttpContext.Current.Server.UrlEncode(t);
            }
    
            /// <summary>
            /// URL Decode
            /// </summary>
            /// <param name="pStr"></param>
            /// <returns></returns>
            public static string URLDecode(this string t)
            {
                return HttpContext.Current.Server.UrlDecode(t);
            }
            #endregion
    
            #region 向客户端输出内容
            /// <summary>
            /// 向客户端输出内容
            /// </summary>
            /// <param name="t"></param>
            public static void Write(this string t)
            {
                HttpContext.Current.Response.Write(t);
            }
    
            /// <summary>
            /// 向客户端输出内容
            /// </summary>
            /// <param name="t"></param>
            public static void WriteLine(this string t)
            {
                HttpContext.Current.Response.Write(t + "<br />");
            }
            #endregion
    
        }
  • 相关阅读:
    OpenCV 笔记 (C++模板template)
    C++中预定义的运算符的操作对象只能是基本的数据类型
    linux-CentOS6.4下安装oracle11g详解
    Eclipse 连接MySql数据库总结
    六个创建模式之单例模式(Singleton Pattern)
    六个创建模式之抽象工厂模式(Abstract Factory Pattern)
    六个创建模式之工厂方法模式(Factory Method Pattern)
    六个创建模式之简单工厂模式(Simple Factory Pattern)
    搜狗实习面试
    Java设计模式 -- 基本原则
  • 原文地址:https://www.cnblogs.com/suger/p/3454705.html
Copyright © 2011-2022 走看看