C# 截取中英文混合字符串分行显示宽度相同

/// <summary>
        /// 截取方法名显示宽度
        /// </summary>
        /// <param name="methodName">方法名</param>
        /// <param name="byteLen">需要截取的字节长度(可以显示的最长字节长度,包括省略号...)</param>
        /// <returns></returns>
        private string SubMethodName(string methodName,int byteLen)
        {
            int methodLen = Encoding.Default.GetByteCount(methodName);
            if(byteLen<1)
            {
                return methodName;
            }
            if (methodLen <= byteLen)
            {
                return methodName;
            }
            else
            {
                int bytecounter = 0;
                string CurrSubStr = string.Empty;
                for (int i = 0; i < methodName.Length; i++)
                {
                    bytecounter = bytecounter + Encoding.Default.GetByteCount(methodName[i].ToString());
                    if (bytecounter > byteLen-4)
                    {
                        break;
                    }
                    CurrSubStr += methodName[i];
                }
                return CurrSubStr + "...";
            }
        }

按 Ctrl+C 复制代码/// <summary>         /// 截取方法名显示宽度         /// </summary>         /// <param name="methodName">方法名</param>         /// <param name="byteLen">需要截取的字节长度(可以显示的最长字节长度,包括省略号...)</param>         /// <returns></returns>         private string SubMethodName(string methodName,int byteLen)         {             int methodLen = Encoding.Default.GetByteCount(methodName);             if(byteLen<1)             {                 return methodName;             }             if (methodLen <= byteLen)             {                 return methodName;             }             else             {                 int bytecounter = 0;                 string CurrSubStr = string.Empty;                 for (int i = 0; i < methodName.Length; i++)                 {                     bytecounter = bytecounter + Encoding.Default.GetByteCount(methodName[i].ToString());                     if (bytecounter > byteLen-4)                     {                         break;                     }                     CurrSubStr += methodName[i];                 }                 return CurrSubStr + "...";             }         }按 Ctrl+C 复制代码  

/// <summary>         /// 截取方法名显示宽度         /// </summary>         /// <param name="methodName">方法名</param>         /// <param name="byteLen">需要截取的字节长度(可以显示的最长字节长度,以全汉字计算,此值只能为偶数,包括省略号...)</param>         /// <returns></returns>         private string SubMethodName(string methodName,int byteLen)         {             int methodLen = Encoding.Default.GetByteCount(methodName);             if(byteLen<1)             {                 return methodName;             }             if (methodLen <= byteLen)             {                 return methodName;             }             else             {                 int bytecounter = 0;                 string CurrSubStr = string.Empty;                 for (int i = 0; i < methodName.Length; i++)                 {                     bytecounter = bytecounter + Encoding.Default.GetByteCount(methodName[i].ToString());                     if (bytecounter > byteLen-4)                     {                         break;                     }                     CurrSubStr += methodName[i];                 }                 return CurrSubStr + "...";             }         }

原文地址:https://www.cnblogs.com/DTWolf/p/4670260.html