using System.Text;
namespace CSTest
{
    class StrOp
    {
        /// <summary>    
        /// 得到字符串的长度,一个汉字算2个字符    
        /// </summary>    
        /// <param name="str">字符串</param>    
        /// <returns>返回字符串长度</returns>    
        public static int GetLength(string str)
        {
            if (str.Length == 0) return 0;
            ASCIIEncoding ascii = new ASCIIEncoding();
            int tempLen = 0;
            byte[] s = ascii.GetBytes(str);
            for (int i = 0; i < s.Length; i++)
            {
                if ((int)s[i] == 63)
                {
                    tempLen += 2;
                }
                else
                {
                    tempLen += 1;
                }
            }
            return tempLen;
        }
        public static string CutString(string str,int len)
        {
            if (str.Length == 0) return str;
            ASCIIEncoding ascii = new ASCIIEncoding();
            int tempLen = 0;
            byte[] s = ascii.GetBytes(str);
            for (int i = 0; i < s.Length; i++)
            {
                if ((int)s[i] == 63)
                {
                    tempLen += 2;
                }
                else
                {
                    tempLen += 1;
                }
                if (tempLen > len) 
                {
                    tempLen = i;
                    break;
                }
            }
            str = str.Substring(0, tempLen);
            return str;
        } 
    }
}
改写别人的方法,得到CutString,初步测试,满足要求
测试如下:
测试结果:

新闻热点
疑难解答