02
2015
11

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;
        }


« 上一篇 下一篇 »

发表评论:

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