zoukankan      html  css  js  c++  java
  • String扩展 让你在PadLeft和PadRight时不再受单双字节问题困扰

     /// <summary>  
            /// 按单字节字符串向左填充长度  
            /// </summary>  
            /// <param name="input"></param>  
            /// <param name="length"></param>  
            /// <param name="paddingChar"></param>  
            /// <returns></returns>  
            public static string PadLeft2(this string input, int length, char paddingChar = '')
            {
                return Pad(input, length, paddingChar, true);
            }
            /// <summary>  
            /// 按单字节字符串向右填充长度  
            /// </summary>  
            /// <param name="input">输入字符串</param>  
            /// <param name="length">单字节长度</param>  
            /// <param name="paddingChar">补位字符</param>  
            /// <returns></returns>   
            public static string PadRight2(this string input, int length, char paddingChar = '')
            {
                return Pad( input,  length, paddingChar, false);
            }
    
            private static string Pad(string input, int length, char paddingChar,bool isLeft)
            {
                var isDoubleChar = Regex.IsMatch(paddingChar.ToString(), @"[^x00-xff]");
                var singleLength = Regex.Replace(input, @"[^x00-xff]", "aa").Length;
                var num = (length - singleLength) *1.0/(isDoubleChar?2:1);
                var newStr=new string(paddingChar,(int)num);
                if (isLeft)
                {
                    input = newStr + input;
                }
                else
                {
                     input = input + newStr;
                }
                return input;
            }
  • 相关阅读:
    POJ 3211 Washing Clothes
    MySQL 优化Limit分页
    signed 与 unsigned 有符号和无符号数
    C/C++ 变量的初始化
    C/C++ 变量的初始化
    返回值的判断
    返回值的判断
    《涅槃经》的研读
    《涅槃经》的研读
    Opencv Surf算子特征提取与最优匹配
  • 原文地址:https://www.cnblogs.com/simadi/p/8608334.html
Copyright © 2011-2022 走看看