软件编程
位置:首页>> 软件编程>> C#编程>> C#实现根据字节数截取字符串并加上省略号的方法

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

作者:shichen2014  发布时间:2021-10-24 22:24:17 

标签:C#,截取,字符串,方法

本文实例讲述了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;
}
0
投稿

猜你喜欢

手机版 软件编程 asp之家 www.aspxhome.com