zoukankan      html  css  js  c++  java
  • C# 项目扩展类(字符串格式化、数值转换等)

     一些扩展类,实现数值格式化和字符串转换。

        public static class MyExClass
        {
            static readonly string[] NumLetter =
            {
                "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="c"></param>
            /// <returns></returns>
            public static string GetNextLetter(string c)
            {
                var x = Array.IndexOf(NumLetter, c) + 1;
                if (x < NumLetter.Length - 1)
                    return NumLetter[x];
                return "#";
            }
    
            #region TrimEx
            /// <summary>
            /// 替换字符串开头的空格、tab字符、换行符和新行(newline)
            /// </summary>
            /// <param name="val"></param>
            /// <returns></returns>
            public static string TrimStartEx(this string val)
            {
                return Regex.Replace(val, @"^s+", "");
            }
            /// <summary>
            /// 替换字符串结尾的空格、tab字符、换行符和新行(newline)
            /// </summary>
            /// <param name="val"></param>
            /// <returns></returns>
            public static string TrimEndEx(this string val)
            {
                return Regex.Replace(val, @"s+$", "");
            }
            /// <summary>
            /// 替换字符串开头和结尾的空格、tab字符、换行符和新行(newline)
            /// </summary>
            /// <param name="val"></param>
            /// <returns></returns>
            public static string TrimStartEndEx(this string val)
            {
                return val.TrimStartEx().TrimEndEx();
            }
    
            /// <summary>
            /// 替换字符串中的空格、tab字符、换行符和新行(newline)
            /// </summary>
            /// <param name="val"></param>
            /// <returns></returns>
            public static string TrimEx(this string val)
            {
                return Regex.Replace(val, @"s", "");
            }
            /// <summary>
            /// 替换字符串中的换行符和新行(newline)
            /// </summary>
            /// <param name="val"></param>
            /// <returns></returns>
            public static string TrimExRN(this string val)
            {
                if (string.IsNullOrWhiteSpace(val))
                    return val;
                return Regex.Replace(val, @"
    |
    ", "");
            }
    
            #endregion
    
            /// <summary>
            /// 判断字符串是否符合a-zA-Z0-9开头,只包含a-zA-Z0-9-_
            /// </summary>
            /// <param name="val"></param>
            /// <returns></returns>
            public static bool TestCodeReg(this string val)
            {
                return Regex.Match(val, "^[a-zA-Z0-9]+[a-zA-Z0-9-_]*$").Success;
            }
    
            #region 数值格式化、金额格式化
            /// <summary>
            /// 字符串转HTML(换行)
            /// </summary>
            /// <param name="val"></param>
            /// <returns></returns>
            public static string ToHtml(this string val)
            {
                return val.Replace("
    ", "<br />").Replace("
    ", "<br />");
            }
    
            /// <summary>
            /// 去除数值尾部多余的0
            /// </summary>
            /// <param name="val"></param>
            /// <returns></returns>
            public static decimal ToDecTrimEnd0(this decimal val)
            {
                string v = string.Format("{0:0.#########;;#}", val);
                return v == "" ? 0M : v.ToDecimal();
            }
    
            /// <summary>
            /// 日期格式化 yyyy-MM-dd
            /// </summary>
            /// <param name="dt">Datetime?</param>
            /// <returns>string</returns>
            static public string ToDateString(this DateTime? dt)
            {
                return dt.HasValue ? ((DateTime)dt).ToString("yyyy-MM-dd") : "";
            }
    
            /// <summary>
            /// 日期格式化 yyyy-MM-dd
            /// </summary>
            /// <param name="dt">Datetime?</param>
            /// <returns>string</returns>
            static public string ToDateString(this DateTime dt)
            {
                return dt.ToString("yyyy-MM-dd");
            }
    
            /// <summary>
            /// 日期格式化 yyyy-MM-dd
            /// </summary>
            /// <param name="dt">string</param>
            /// <returns>string</returns>
            static public string ToDateString(this string val)
            {
                try
                {
                    DateTime dt = DateTime.Parse(val);
                    return dt.ToString("yyyy-MM-dd");
                }
                catch(Exception ex)
                {
                    return val;
                }
            }
            /// <summary>
            /// 日期格式化 yyyy-MM-dd
            /// </summary>
            /// <param name="dt">string</param>
            /// <returns>string</returns>
            static public string ToDateString(this object val)
            {
                try
                {
                    var s = val == null ? "" : val.ToString();
                    DateTime dt = DateTime.Parse(s);
                    return dt.ToString("yyyy-MM-dd");
                }
                catch (Exception ex)
                {
                    return "";
                }
            }
    
            /// <summary>
            /// 金额取整
            /// </summary>
            /// <param name="val">decimal?</param>
            /// <returns>string</returns>
            static public string ToAmtString(this decimal? val)
            {
                if (val.HasValue)
                    return Math.Round((decimal)val).ToString();
                else
                    return "";
            }
    
            /// <summary>
            /// 金额格式化
            /// </summary>
            /// <param name="val">string</param>
            /// <param name="i">精度</param>
            /// <returns>string</returns>
            static public string ToAmtString(this decimal? val, int i)
            {
                if (val.HasValue)
                    return Math.Round((decimal)val, i).ToString();
                else
                    return "";
            }
            /// <summary>
            /// 金额格式化
            /// </summary>
            /// <param name="val">string</param>
            /// <param name="i">精度</param>
            /// <returns>string</returns>
            static public string ToAmtString(this decimal val, int i)
            {
                return Math.Round((decimal)val, i).ToString();
            }
    
            /// <summary>
            /// 字符串金额取整
            /// </summary>
            /// <param name="val">string</param>
            /// <returns>string</returns>
            static public string ToAmtString(this string val)
            {
                return StrToAmtString(val, 0);
            }
    
            /// <summary>
            /// 字符串金额取2位精度
            /// </summary>
            /// <param name="val">string</param>
            /// <returns>string</returns>
            static public string ToAmtString2(this string val)
            {
                return StrToAmtString(val, 2);
            }
    
    
            /// <summary>
            /// 字符串金额取3位精度
            /// </summary>
            /// <param name="val">string</param>
            /// <returns>string</returns>
            static public string ToAmtString3(this string val)
            {
                return StrToAmtString(val, 3);
            }
    
    
            /// <summary>
            /// 字符串金额取4位精度
            /// </summary>
            /// <param name="val">string</param>
            /// <returns>string</returns>
            static public string ToAmtString4(this string val)
            {
                return StrToAmtString(val, 4);
            }
    
            /// <summary>
            /// 金额精度格式化
            /// </summary>
            /// <param name="val">string</param>
            /// <param name="i">int32</param>
            /// <returns>string</returns>
            static public string StrToAmtString(string val, Int32 i)
            {
                try
                {
                    if (val == "")
                        return "";
                    decimal dval = decimal.Parse(val);
                    if (dval == 0m)
                        return "";
                    dval = Math.Round(dval, i);
                    return dval.ToString();
                }
                catch (Exception ex)
                {
                    return val;
                }
            }
    
            /// <summary>
            /// object转金额
            /// </summary>
            /// <param name="val"></param>
            /// <returns></returns>
            static public decimal ToDecimal(this object val)
            {
                decimal d;
                if (val == null) return 0M;
                return decimal.TryParse(val.ToString().Trim(), out d) ? d : 0M;
            }
    
            /// <summary>
            /// object转金额
            /// </summary>
            /// <param name="val">object</param>
            /// <param name="x">精度</param>
            /// <returns></returns>
            static public decimal ToDecimal(this object val,int x)
            {
                decimal d = val.ToDecimal();
                //d= decimal.TryParse(val.ToString().Trim(), out d) ? d : 0M;
                return Math.Round(d, x);
            }
    
    
            /// <summary>
            /// 字符串转金额
            /// </summary>
            /// <param name="val"></param>
            /// <returns></returns>
            static public decimal ToDecimal(this string val)
            {
                decimal d;
                if (decimal.TryParse(val, out d))
                    return d;
                else
                    return 0M;
            }
    
            /// <summary>
            /// 字符串转金额
            /// </summary>
            /// <param name="val"></param>
            /// <returns></returns>
            static public decimal? ToDecimalOrNull(this string val)
            {
                decimal d;
                if (decimal.TryParse(val, out d))
                    return d;
                else
                    return null;
            }
            
            /// <summary>
            /// 字符串转金额
            /// </summary>
            /// <param name="val"></param>
            /// <returns></returns>
            static public decimal ToDecimal(this string val,int i)
            {
                decimal d;
                if (decimal.TryParse(val, out d))
                {
                    d = Math.Round(d, i);
                    return d;
                }
                else
                    return 0M;
            }
    
            /// <summary>
            /// 字符转整数
            /// </summary>
            /// <param name="val"></param>
            /// <returns></returns>
            static public int ToInt(this string val)
            {
                int i = 0;
                if (!string.IsNullOrWhiteSpace(val))
                    int.TryParse(val, out i);
                return i;
            }
    
            /// <summary>
            /// object转Int
            /// </summary>
            /// <param name="val"></param>
            /// <returns></returns>
            public static int ToInt(this object val)
            {
                if (val == null)
                    return 0;
                string v = val.ToString().Trim();
                int i;
                int.TryParse(v, out i);
                return i;
            }
    
            #endregion
    
            #region 全角半角转换
            /// <summary>
            /// 转全角的函数(SBC case)
            /// </summary>
            /// <param name="input">任意字符串</param>
            /// <returns>全角字符串</returns>
            ///<remarks>
            ///全角空格为12288,半角空格为32
            ///其他字符半角(33-126)与全角(65281-65374)的对应关系是:均相差65248
            ///</remarks>
            public static string ToSbc(this string input)
            {
                //半角转全角:
                char[] c = input.ToCharArray();
                for (int i = 0; i < c.Length; i++)
                {
                    if (c[i] == 32)
                    {
                        c[i] = (char)12288;
                        continue;
                    }
                    if (c[i] < 127)
                        c[i] = (char)(c[i] + 65248);
                }
                return new string(c);
            }
            /// <summary> 转半角的函数(DBC case) </summary>
            /// <param name="input">任意字符串</param>
            /// <returns>半角字符串</returns>
            ///<remarks>
            ///全角空格为12288,半角空格为32
            ///其他字符半角(33-126)与全角(65281-65374)的对应关系是:均相差65248
            ///</remarks>
            public static string ToDbc(this string input)
            {
                char[] c = input.ToCharArray();
                for (int i = 0; i < c.Length; i++)
                {
                    if (c[i] == 12288)
                    {
                        c[i] = (char)32;
                        continue;
                    }
                    if (c[i] > 65280 && c[i] < 65375)
                        c[i] = (char)(c[i] - 65248);
                }
                return new string(c);
            }
            #endregion
    
    
            #region 燃气系统判断是否门店、气库
    
            /// <summary>
            /// 是否门店
            /// </summary>
            /// <param name="val"></param>
            /// <returns></returns>
            public static bool IsSalesRoom(this string val)
            {
                var r = Config.GetValue("RSalesRoom");
                return Regex.Match(val, r).Success;
            }
    
            /// <summary>
            /// 是否气库
            /// </summary>
            /// <param name="val"></param>
            /// <returns></returns>
            public static bool IsGasStation(this string val)
            {
                var r = Config.GetValue("RGasStation");
                return Regex.Match(val, r).Success;
            }
            /// <summary>
            /// 是否座席
            /// </summary>
            /// <param name="val"></param>
            /// <returns></returns>
            public static bool IsAgent(this string val)
            {
                var r = Config.GetValue("RAgent");
                return Regex.Match(val, r).Success;
            }
            /// <summary>
            /// 是否片区负责人
            /// </summary>
            /// <param name="val"></param>
            /// <returns></returns>
            public static bool IsAreaManager(this string val)
            {
                var r = Config.GetValue("RAreaManager");
                return Regex.Match(val, r).Success;
            }
    
            #endregion
        }
         
    

      

  • 相关阅读:
    大牛思考方式
    web面试题大全
    github上最全的资源教程-前端涉及的所有知识体系
    java switch语句注意的事项
    Lucene Payload 的研究与应用
    hive array、map、struct使用
    黑马程序员--正则表达式
    [置顶] 读源码练内功(一):guava之eventbus
    自定义Java Annotations实例以及用Java Reflection来解析自定义的Annotation
    Solr之NamedList 简单介绍与实例解析
  • 原文地址:https://www.cnblogs.com/lmx-102/p/9872040.html
Copyright © 2011-2022 走看看