当前位置: 首页 > 编程笔记 >

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

燕靖
2023-03-14
本文向大家介绍C#实现根据字节数截取字符串并加上省略号的方法,包括了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;
}
 类似资料:
  • 本文向大家介绍Powershell截取字符串并添加省略号的例子,包括了Powershell截取字符串并添加省略号的例子的使用技巧和注意事项,需要的朋友参考一下 限制字符串大小 支持所有版本。 确保你输出的字符串不会过长,当字符串超过你指定的长度你可以用下面办法将其缩短。

  • 问题内容: 我敢肯定,我们所有人都在Facebook状态(或其他位置)上看到省略号,然后单击“显示更多”,并且只有另外两个字符左右。我猜这是由于懒惰的编程,因为肯定有一种理想的方法。 我的人把苗条的字符算作“半个字符”,但是当省略号几乎没有隐藏任何字符时,这并不能解决。 有没有理想的方法?这是我的: 语言并不重要,但可以标记为Java,因为这是我最感兴趣的内容。 问题答案: 我喜欢让“瘦”字符算作

  • 本文向大家介绍ThinkPHP的截取字符串函数无法显示省略号的解决方法,包括了ThinkPHP的截取字符串函数无法显示省略号的解决方法的使用技巧和注意事项,需要的朋友参考一下 对于ThinkPHP的截取字符串函数无法显示省略号的情况,解决方法如下: 打开Common/extend.php页面,修改msubstr函数如下:

  • 本文向大家介绍C#实现中英文混合字符串截取的方法,包括了C#实现中英文混合字符串截取的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了C#实现中英文混合字符串截取的方法,是C#字符串操作中非常常用的一个方法。分享给大家供大家参考之用。具体方法如下: 具体功能代码如下: 希望本文所述方法对大家C#程序设计有所帮助。

  • 本文向大家介绍js 截取或者替换字符串中的数字实现方法,包括了js 截取或者替换字符串中的数字实现方法的使用技巧和注意事项,需要的朋友参考一下 在js操作表格时,我们经常会需要得到或者修改name中的下标,如:name="cust[1]/custName"; 替换:name.replace(/[\d]+/,num); //num为你需要替换成的数字变量 获取:name.match(/[\d]+/)

  • 问题内容: 是否有解决方案,以div的最后一行在流体高度(20%)处添加省略号? 我在CSS中找到了该函数,但在我的情况下,行号取决于窗口大小。 问题答案: 如果要将省略号(…)应用于一行文本,CSS可以通过该属性使此操作变得容易。仍然有些棘手(由于所有要求,请参阅下文),但使之成为可能且可靠。 但是,如果要在多行文本上使用省略号(如此处的情况),那么不要指望有什么乐趣。CSS没有执行此操作的标准