1. 程式人生 > >String擴展 讓你在PadLeft和PadRight時不再受單雙字節問題困擾

String擴展 讓你在PadLeft和PadRight時不再受單雙字節問題困擾

his 字節 ati span ews pan spa summary padleft

 /// <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 = \0) { 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 = \0) { 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; }

String擴展 讓你在PadLeft和PadRight時不再受單雙字節問題困擾