zoukankan      html  css  js  c++  java
  • 截断字符串,取指定长度字符(中英文通用)

    vs2008

    设计页:

                                              <asp:TemplateField>
                                                    <ItemTemplate>
                                                        <a href='test.aspx?newsId=<%#Eval("id") %>'target="_blank">
                                                         <%# CutString(Convert.ToString(Eval("content")), 30)%></a>
                                                    </ItemTemplate>
                                                </asp:TemplateField>

    代码页:

        /// <summary>
        /// 如果长度大于totalLen,则截取len长度,其余...添充
        /// </summary>
        /// <param name="s">要截取的字符串</param>
        /// <param name="len">截取的长度</param>
        /// <param name="totalLen">添充.后的总长度</param>
        /// <returns></returns>
        public string CutString(string s, int len)
        {
            int totalLen = 33;
            string result = ""; //最终返回的结果
            int byteLen = System.Text.Encoding.Default.GetByteCount(s);  //单字节字符长度
            if (byteLen <= totalLen) return s;
            int charLen = s.Length; //把字符平等对待时的字符串长度
            int byteCount = 0;  //记录读取进度{中文按两单位计算}
            int pos = 0;    //记录截取位置{中文按两单位计算}
            if (byteLen > len)
            {
                for (int i = 0; i < charLen; i++)
                {
                    if (byteCount >= len)   //到达指定长度时,记录指针位置并停止
                    {
                        pos = i;
                        break;
                    }
                    if (Convert.ToInt32(s.ToCharArray()[i]) > 255)  //遇中文字符计数加2
                        byteCount += 2;
                    else         //按英文字符计算加1
                        byteCount += 1;

                }
                result = s.Substring(0, pos) + "".PadLeft(totalLen - byteCount, '.');
            }
            else
                result = s;

            return result;
        }

  • 相关阅读:
    使用crontab定时执行脚本时别忘了输出重定向>
    php 中函数获取可变参数的方法, 这个语法有点像 golang 语言中的
    单词number 和 numeral 的区别
    vim 调到闭合的{
    [转]文件IO详解(二)---文件描述符(fd)和inode号的关系
    js中有包装类,java中也有包装类
    cin中函数的作用
    string类小结
    结构、位域、联合、枚举之小小总结
    运算符重载(C++)
  • 原文地址:https://www.cnblogs.com/yubufan/p/3422664.html
Copyright © 2011-2022 走看看