熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> .NET編程 >> 正文

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

2013-11-13 10:12:47  來源: .NET編程 

  //字符是否為漢字

  public bool IsChinese(char c)

  {

  return (int)c >= xE && (int)c <= xFA;

  }

  //獲得字節長度

  private int getLengthb(string str)

  {

  return SystemTextEncodingDefaultGetByteCount(str);

  }

  //c#的中英文混合字符串截取指定長度startidx從開始 by

  public string getStrLenB(string str int startidx int len)

  {

  int Lengthb = getLengthb(str);

  if (startidx + > Lengthb)

  {

  return ;

  }

  int j = ;

  int l = ;

  int strw = ;//字符的寬度

  bool b = false;

  string rstr = ;

  for (int i = ; i < strLength; i++)

  {

  char c = str[i];

  if (j >= startidx)

  {

  rstr = rstr + c;

  b = true;

  }

  if (IsChinese(c))

  {

  strw = ;

  }

  else

  {

  strw = ;

  }

  j = j + strw;

  if (b)

  {

  l = l + strw;

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

  }

  }

  return rstr;

  }

  private void button_Click(object sender EventArgs e) //測試by yl

  {

  MessageBoxShow(getStrLenB(gisoracle歡迎你gisoracle ));//gisoracle

  MessageBoxShow(getStrLenB(gisoracle歡迎你gisoracle ));//isoracle歡

  MessageBoxShow(getStrLenB(gisoracle歡迎你gisoracle ));//isoracle歡

  }


From:http://tw.wingwit.com/Article/program/net/201311/12925.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.