小周的技术博客

困难是培养伟大心志的保姆,唯有这个冷酷的保姆才会不停地推着摇篮,培养一个勇敢、刚健的孩子。 ---------布赖恩特

C# 截取字符串方法(包含中英混合)

private string GetByteString(string center, int maxlen, string endStr)
        {
            string temp = center.Substring(0, (center.Length < maxlen + 1) ? center.Length : maxlen + 1);
            byte[] encodedBytes = System.Text.ASCIIEncoding.ASCII.GetBytes(temp);
            string outputStr = "";
            int count = 0;
            for (int i = 0; i < temp.Length; i++)
            {
                if ((int)encodedBytes[i] == 63)
                    count += 2;
                else
                    count += 1;

                if (count <= maxlen - endStr.Length)
                    outputStr += temp.Substring(i, 1);
                else if (count > maxlen)
                    break;
            }
            if (count <= maxlen)
            {
                outputStr = temp;
                endStr = "";
            }
            outputStr += endStr;
            return outputStr;
        }


发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。