首页 > 编程 > C# > 正文

C#实现根据字节数截取字符串并加上省略号的方法

2020-01-24 02:37:14
字体:
来源:转载
供稿:网友

本文实例讲述了C#按字节数截取字符串并在后面加上省略号...的方法,这是一个自定义的C#函数,函数的使用说明如下:

<param name="origStr">原始字符串</param><param name="endIndex">提取前endIdex个字节</param><returns></returns>

函数代码如下:

public static string GetSubString(string origStr, int endIndex){  if (origStr == null || origStr.Length == 0 || endIndex < 0)    return "";  int bytesCount = System.Text.Encoding.GetEncoding("gb2312").GetByteCount(origStr);  if (bytesCount > endIndex)  {    int readyLength = 0;    int byteLength;    for (int i = 0; i < origStr.Length; i++)    {      byteLength = System.Text.Encoding.GetEncoding("gb2312").GetByteCount(new char[] { origStr[i] });      readyLength += byteLength;      if (readyLength == endIndex)      {        origStr = origStr.Substring(0, i + 1) + "...";        break;      }      else if (readyLength > endIndex)      {        origStr = origStr.Substring(0, i) + "...";        break;      }    }  }  return origStr;}

以下所示示例也是根据字节数截取字符串的,只是这个函数后面不加省略号……

/// 按字节数截取字符串(不带省略号)/// </summary>/// <param name="origStr">原始字符串</param>/// <param name="endIndex">提取前endIdex个字节</param>/// <returns></returns>public static string GetSub1String(string origStr, int endIndex){  if (origStr == null || origStr.Length == 0 || endIndex < 0)    return "";  int bytesCount = System.Text.Encoding.GetEncoding("gb2312").GetByteCount(origStr);  if (bytesCount > endIndex)  {    int readyLength = 0;    int byteLength;    for (int i = 0; i < origStr.Length; i++)    {      byteLength = System.Text.Encoding.GetEncoding("gb2312").GetByteCount(new char[] { origStr[i] });      readyLength += byteLength;      if (readyLength == endIndex)      {        origStr = origStr.Substring(0, i + 1);        break;      }      else if (readyLength > endIndex)      {        origStr = origStr.Substring(0, i);        break;      }    }  }  return origStr;}
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表