文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>c#中英文混合字符串截取指定长度

c#中英文混合字符串截取指定长度

时间:2010-09-02  来源:花田错

  //字符是否为汉字

  public bool IsChinese(char c)

  {

  return (int)c >= 0x4E00 && (int)c <= 0x9FA5;

  }

  //获得字节长度

  private int getLengthb(string str)

  {

  return System.Text.Encoding.Default.GetByteCount(str);

  }

  //c#的中英文混合字符串截取指定长度,startidx从0开始 by [email protected]

  public string getStrLenB(string str, int startidx, int len)

  {

  int Lengthb = getLengthb(str);

  if (startidx + 1 > Lengthb)

  {

  return "";

  }

  int j = 0;

  int l = 0;

  int strw = 0;//www.qichepeijian.com字符的宽度

  bool b = false;

  string rstr = "";

  for (int i = 0; i < str.Length; i++)

  {

  char c = str[i];

  if (j >= startidx)

  {

  rstr = rstr + c;

  b = true;

  }

  if (IsChinese(c))

  {

  strw = 2;

  }

  else

  {

  strw = 1;

  }

  j = j + strw;

  if (b)

  {

  l = l + strw;

  if ((l+1)>= len) break;

  }

  }

  return rstr;

  }

  private void button4_Click(object sender, EventArgs e) //测试by yl [email protected]

  {

  MessageBox.Show(getStrLenB("gisoracle欢迎你gisoracle", 0, 10));//gisoracle

  MessageBox.Show(getStrLenB("gisoracle欢迎你gisoracle", 1, 10));//isoracle欢

  MessageBox.Show(getStrLenB("gisoracle欢迎你gisoracle", 2, 10));//isoracle欢

  }

相关阅读 更多 +
排行榜 更多 +
辰域智控app

辰域智控app

系统工具 下载
网医联盟app

网医联盟app

运动健身 下载
汇丰汇选App

汇丰汇选App

金融理财 下载