Šis straipsnis yra veidrodinis mašininio vertimo straipsnis, spauskite čia norėdami pereiti prie originalaus straipsnio.

Rodinys: 18567|Atsakyti: 0

[ASP.NET] C# perima stygos ilgį 3 būdais

[Kopijuoti nuorodą]
Paskelbta 2015-05-22 21:43:04 | | |
1 metodas:
  1. /// <summary>
  2.         /// 截取指定长度的字符串
  3.         /// </summary>
  4.         /// <param name="str">要截取的字符串</param>
  5.         /// <param name="len">要截取的长度</param>
  6.         /// <param name="flag">截取后是否加省略号(true加,false不加)</param>
  7.         /// <returns></returns>
  8.         public static string CutString(string str, int len, bool flag)
  9.         {
  10.             string _outString = "";
  11.             int _len = 0;
  12.             for (int i = 0; i < str.Length; i++)
  13.             {
  14.                 if (Char.ConvertToUtf32(str, i) >= Convert.ToInt32("4e00", 16) && Char.ConvertToUtf32(str, i) <= Convert.ToInt32("9fff", 16))
  15.                 {
  16.                     _len += 2;
  17.                     if (_len > len)//截取的长度若是最后一个占两个字节,则不截取
  18.                     {
  19.                         break;
  20.                     }
  21.                 }
  22.                 else
  23.                 {
  24.                     _len++;
  25.                 }


  26.                 try
  27.                 {
  28.                     _outString += str.Substring(i, 1);
  29.                 }
  30.                 catch
  31.                 {
  32.                     break;
  33.                 }
  34.                 if (_len >= len)
  35.                 {
  36.                     break;
  37.                 }
  38.             }
  39.             if (str != _outString && flag == true)//判断是否添加省略号
  40.             {
  41.                 _outString += "...";
  42.             }
  43.             return _outString;
  44.         }
Kopijuoti kodą
2 metodas:
  1. /// <summary>
  2.         /// 截取指定长度的字符串
  3.         /// </summary>
  4.         /// <param name="str">要截取的字符串</param>
  5.         /// <param name="len">要截取的长度</param>
  6.         /// <param name="flag">截取后是否加省略号(true加,false不加)</param>
  7.         /// <returns></returns>
  8.         public static string CutString(string str, int len, bool flag)
  9.         {
  10.             System.Text.ASCIIEncoding ascii = new System.Text.ASCIIEncoding();
  11.             byte[] bts = ascii.GetBytes(str);
  12.             int _len = 0;
  13.             string _outString = "";
  14.             for (int i = 0; i < bts.Length; i++)
  15.             {
  16.                 if ((int)bts[i] == 63)//两个字符
  17.                 {
  18.                     len += 2;
  19.                     if (_len > len)//截取的长度若是最后一个占两个字节,则不截取
  20.                     {
  21.                         break;
  22.                     }
  23.                 }
  24.                 else
  25.                 {
  26.                     len += 1;
  27.                 }

  28.                 try
  29.                 {
  30.                     _outString += str.Substring(i, 1);
  31.                 }
  32.                 catch
  33.                 {
  34.                     break;
  35.                 }

  36.                 if (_len >= len)
  37.                 {
  38.                     break;
  39.                 }
  40.             }
  41.             if (str != _outString && flag == true)//判断是否添加省略号
  42.             {
  43.                 _outString += "...";
  44.             }
  45.             return _outString;
  46.         }
Kopijuoti kodą
3 metodas:
  1. /// <summary>
  2.         /// 截取指定长度的字符串
  3.         /// </summary>
  4.         /// <param name="str">要截取的字符串</param>
  5.         /// <param name="len">要截取的长度</param>
  6.         /// <param name="flag">截取后是否加省略号(true加,false不加)</param>
  7.         /// <returns></returns>
  8.         public static string CutString(string str, int len, bool flag)
  9.         {
  10.             if (str == null || str.Length == 0 || len <= 0)
  11.             {
  12.                 return string.Empty;
  13.             }

  14.             int l = str.Length;

  15.             #region 计算长度
  16.             int clen = 0;
  17.             while (clen < len && clen < l)
  18.             {
  19.                 //每遇到一个中文,则将目标长度减一。
  20.                 if ((int)str[clen] > 128)
  21.                 {
  22.                     len--;
  23.                 }
  24.                 clen++;
  25.             }
  26.             #endregion

  27.             if (clen < l)
  28.             {
  29.                 return flag ? str.Substring(0, clen) + "..." : str.Substring(0, clen);
  30.             }
  31.             else
  32.             {
  33.                 return str;
  34.             }
  35.         }
Kopijuoti kodą






Ankstesnis:asp.net standartinė trijų pakopų sistema, naudojama egzaminui
Kitą:Valdiklyje GridView teksto turinys rodo visą html šaltinio kodą
Atsakomybės apribojimas:
Visa programinė įranga, programavimo medžiaga ar straipsniai, kuriuos skelbia Code Farmer Network, yra skirti tik mokymosi ir mokslinių tyrimų tikslams; Aukščiau nurodytas turinys negali būti naudojamas komerciniais ar neteisėtais tikslais, priešingu atveju vartotojai prisiima visas pasekmes. Šioje svetainėje pateikiama informacija gaunama iš interneto, o ginčai dėl autorių teisių neturi nieko bendra su šia svetaine. Turite visiškai ištrinti aukščiau pateiktą turinį iš savo kompiuterio per 24 valandas nuo atsisiuntimo. Jei jums patinka programa, palaikykite autentišką programinę įrangą, įsigykite registraciją ir gaukite geresnes autentiškas paslaugas. Jei yra kokių nors pažeidimų, susisiekite su mumis el. paštu.

Mail To:help@itsvse.com