• c# 超长字符串截取固定长度后显示...(超长后面显示点点点) 通用方法


    通用方法:

    此方法是采用unicode编码方式,一个汉字为2个字节,一个数字or字母是1个字节,此方法传入的第二个长度参数是unicode长度。

    所以不用考虑截取的字符串是汉字还是英文字母的问题,参数length 可以理解为应该显示的宽度即可。

     1   public string GetFirstString(string stringToSub, int length)
     2         {
     3             Regex regex = new Regex(@"[u4e00-u9fa5]+", RegexOptions.Compiled);
     4             char[] stringChar = stringToSub.ToCharArray();
     5             StringBuilder sb = new StringBuilder();
     6             int nLength = 0;
     7             for (int i = 0; i < stringChar.Length; i++)
     8             {
     9                 if (regex.IsMatch((stringChar[i]).ToString()))
    10                 {
    11                     nLength += 2;
    12                 }
    13                 else
    14                 {
    15                     nLength = nLength + 1;
    16                 }
    17 
    18                 if (nLength <= length)
    19                 {
    20                     sb.Append(stringChar[i]);
    21                 }
    22                 else
    23                 {
    24                     break;
    25                 }
    26             }
    27             if (sb.ToString() != stringToSub)
    28             {
    29                 sb.Append("...");
    30             }
    31             return sb.ToString();
    32         }

    调用方法:
    string NewStr = GetFirstString(OldStr, 25);//第一个参数原字符串,第二个参数截断的长度
  • 相关阅读:
    opennebula 编译日志
    eclipse scons 使用指南
    eclipse 安装scons
    在Windows7上搭建Cocos2d-x 3.2alpha0开发环境
    Centos6.3 jekyll环境安装
    CNN-利用1*1进行降维和升维
    偏导数
    卷积神经网络--CNN
    struts2 模型驱动
    Struts2 数据驱动
  • 原文地址:https://www.cnblogs.com/yonguibe/p/3270173.html
Copyright © 2020-2023  润新知