当前位置: 移动技术网 > IT编程>开发语言>c# > C#实现根据字节数截取字符串并加上省略号的方法

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

2019年07月18日  | 移动技术网IT编程  | 我要评论
本文实例讲述了c#按字节数截取字符串并在后面加上省略号...的方法,这是一个自定义的c#函数,函数的使用说明如下: <param name="origstr

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

如您对本文有疑问或者有任何想说的,请点击进行留言回复,万千网友为您解惑!

相关文章:

  • 如何使用C# 捕获进程输出

    intro很多时候我们可能会需要执行一段命令获取一个输出,遇到的比较典型的就是之前我们需要用 ffmpeg 实现视频的编码压缩水印等一系列操作,当时使用的是 f... [阅读全文]
  • 全面分析c# LINQ

    大家好,这是 [c#.net 拾遗补漏] 系列的第 08 篇文章,今天讲 c# 强大的 linq 查询。linq 是我最喜欢的 c# 语言特性之一。linq 是... [阅读全文]
  • C# DataTable常见用法汇总

    c# datatable 的常见用法:(1)新建数据表。(2)向表添加列。(3)设置表特定行与列的数据值。(4)将某行数据加入到表。(5)合并表。(6)复制表。... [阅读全文]
  • C# 如何解析获取Url参数值

    今天遇到一个需求,需要处理通过接口传过来的一个参数,参数内容为一个拼接好的url地址,且该地址还会携带了一些额外的参数,包括但不限于数字,字符串,json串。样... [阅读全文]
  • C# 实现dataGridView选中一行右键出现菜单的示例代码

    在窗体中添加datagridview控件和contextmenustrip1控件,修改datagridview属性,将contextmenustrip控件绑定d... [阅读全文]
  • WPF实现手风琴式轮播图切换效果

    WPF实现手风琴式轮播图切换效果

    本文实例为大家分享了wpf实现轮播图切换效果的具体代码,供大家参考,具体内容如下实现效果如下:步骤:1、自定义控件myimagecontrol实现图片的裁切和动... [阅读全文]
  • WPF实现3D翻牌式倒计时特效

    WPF实现3D翻牌式倒计时特效

    本文实例为大家分享了wpf实现3d翻牌式倒计时的具体代码,供大家参考,具体内容如下实现效果如下:思路:使用自定义控件,设置一个背板 mycardcontrolb... [阅读全文]
  • WPF实现平面三角形3D运动效果

    WPF实现平面三角形3D运动效果

    本文实例为大家分享了wpf实现平面三角形3d运动效果的具体代码,供大家参考,具体内容如下实现效果如下:思路:封装三角形三个顶点和路径的三角形类,图形渲染时同步更... [阅读全文]
  • WPF实现3D粒子波浪效果

    WPF实现3D粒子波浪效果

    本文实例为大家分享了wpf实现3d粒子波浪效果的具体代码,供大家参考,具体内容如下实现效果如下:步骤:1、3d粒子类particle.cs2、粒子系统parti... [阅读全文]
  • 谈谈c#中的索引器

    概念索引器(indexer) 允许类中的对象可以像数组那样方便、直观的被引用。当为类定义一个索引器时,该类的行为就会像一个 虚拟数组(virtual array... [阅读全文]
验证码:
移动技术网