Šis raksts ir mašīntulkošanas spoguļraksts, lūdzu, noklikšķiniet šeit, lai pārietu uz oriģinālo rakstu.

Skats: 18567|Atbildi: 0

[ASP.NET] C# pārtver virknes garumu 3 veidos

[Kopēt saiti]
Publicēts 22.05.2015 21:43:04 | | |
1. metode:
  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.         }
Kopēt kodu
2. metode:
  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.         }
Kopēt kodu
3. metode:
  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.         }
Kopēt kodu






Iepriekšējo:asp.net eksāmenam izmantotā standarta trīspakāpju sistēma
Nākamo:Vadīklā GridView teksta saturs parāda pilnu html avota kodu
Atruna:
Visa programmatūra, programmēšanas materiāli vai raksti, ko publicē Code Farmer Network, ir paredzēti tikai mācību un pētniecības mērķiem; Iepriekš minēto saturu nedrīkst izmantot komerciāliem vai nelikumīgiem mērķiem, pretējā gadījumā lietotājiem ir jāuzņemas visas sekas. Informācija šajā vietnē nāk no interneta, un autortiesību strīdiem nav nekāda sakara ar šo vietni. Iepriekš minētais saturs ir pilnībā jāizdzēš no datora 24 stundu laikā pēc lejupielādes. Ja jums patīk programma, lūdzu, atbalstiet oriģinālu programmatūru, iegādājieties reģistrāciju un iegūstiet labākus oriģinālus pakalpojumus. Ja ir kādi pārkāpumi, lūdzu, sazinieties ar mums pa e-pastu.

Mail To:help@itsvse.com