精美而实用的网站,关注web编程技术、网站运营、SEO推广,让您轻松愉快的学习

截取字符串是我们经常会面临的一个问题,ASP.NET是如何截取字符串的呢,下面分享2个asp.net截取字符的函数,1个可以截取指定长度的字符串函数,1个可以随意截取。

asp.net截取字符的第一个函数

这个函数可以截取指定的字符位数,超出的部分用…显示

/// 格式化字符串,取字符串前 strLen位,其他的用...代替.
/// 计算字符串长度。汉字两个字节,字母一个字节
public static string FormatStr(string str, int len)
{
ASCIIEncoding ascii = new ASCIIEncoding();
int tempLen = 0;
string tempString = "";
byte[] s = ascii.GetBytes(str);
for (int i = 0; i < s.Length; i++)
{
if ((int)s[i] == 63)
{ tempLen += 2; }
else
{ tempLen += 1; }
try
{ tempString += str.Substring(i, 1); }
catch
{ break; }
if (tempLen > len) break;
}
//如果截过则加上半个省略号 
byte[] mybyte = System.Text.Encoding.Default.GetBytes(str);
if (mybyte.Length > len)
tempString += "......";
tempString = tempString.Replace("&nbsp;", " ");
tempString = tempString.Replace("&lt;", "<");
tempString = tempString.Replace("&gt;", ">");
tempString = tempString.Replace('\n'.ToString(), "<br>");
return tempString;
}

asp.net截取字符的第二个函数

publicstringGetContent(stringstr,stringstart,stringlast,intn)
{
   if(str.ToLower().IndexOf(start.ToLower())>=0)
   {
   if(str.ToLower().IndexOf(last.ToLower())>=0)
   {
   switch(n)
   {
   //左右都截取(都取前面)(包含关键字)

   case1: 
str=str.Substring(str.ToLower().IndexOf(start.ToLower()),str.Length-str.ToLower().IndexOf(start.ToLower()));str=str.Substring(0,str.ToLower().IndexOf(last.ToLower())+last.Length);break;
   //左右都截取(都取前面)(去除关键字)

   case2: 
str=str.Substring(str.ToLower().IndexOf(start.ToLower())+start.Length, 
str.Length-str.ToLower().IndexOf(start.ToLower())-start.Length); 
str=str.Substring(0,str.ToLower().IndexOf(last.ToLower()));break;
   //左右都截取(都取后面)(包含关键字)

   case3: 
str=str.Substring(str.ToLower().LastIndexOf(start.ToLower()),str.Length-str.ToLower().LastIndexOf(start.ToLower()));str=str.Substring(0,str.ToLower().LastIndexOf(last.ToLower())+last.Length);break;
   //左右都截取(都取后面)(去除关键字)

   case4: 
str=str.Substring(str.ToLower().LastIndexOf(start.ToLower())+start.Length,
 str.Length-str.ToLower().LastIndexOf(start.ToLower())-start.Length); 
str=str.Substring(0,str.ToLower().LastIndexOf(last.ToLower()));break;
   //左右都截取(一前一后)(包含关键字)

   case5: 
str=str.Substring(str.ToLower().IndexOf(start.ToLower()),str.Length-str.ToLower().IndexOf(start.ToLower()));str=str.Substring(0,str.ToLower().LastIndexOf(last.ToLower())+last.Length);break;
   //左右都截取(一前一后)(去除关键字)

   case6: 
str=str.Substring(str.ToLower().IndexOf(start.ToLower())+start.Length, 
str.Length-str.ToLower().IndexOf(start.ToLower())-start.Length); 
str=str.Substring(0,str.ToLower().LastIndexOf(last.ToLower()));break;
   default: str="";break;
   }
   }
   else
   {
   switch(n)
   {
   //只往左截取(取前面的)(包含关键字)
   case7: str=str.Substring(0,str.ToLower().IndexOf(start.ToLower())+start.Length);break;
   //只往左截取(取前面的)(去除关键字)
   case8: str=str.Substring(0,str.ToLower().IndexOf(start.ToLower()));break;
   //只往左截取(取后面的)(包含关键字)
   case9: str=str.Substring(0,str.ToLower().LastIndexOf(start.ToLower())+start.Length);break;
   //只往左截取(取后面的)(去除关键字)
   case10: str=str.Substring(0,str.ToLower().LastIndexOf(start.ToLower()));break;
   //只往右截取(取前面的)(包含关键字)
   case11: str=str.Substring(str.ToLower().IndexOf(start.ToLower()),str.Length-str.ToLower().IndexOf(start.ToLower()));break;
   //只往右截取(取前面的)(去除关键字)

   case12: 
str=str.Substring(str.ToLower().IndexOf(start.ToLower())+start.Length, 
str.Length-str.ToLower().IndexOf(start.ToLower())-start.Length);break;
   //只往右截取(取后面的)(包含关键字)

   case13: 
str=str.Substring(str.ToLower().LastIndexOf(start.ToLower()),str.Length-str.ToLower().LastIndexOf(start.ToLower()));break;
   //只往右截取(取后面的)(去除关键字)

   case14: 
str=str.Substring(str.ToLower().LastIndexOf(start.ToLower())+start.Length,
 
str.Length-str.ToLower().LastIndexOf(start.ToLower())-start.Length);break;
   default: str="无";break;
   }
   }
   }
   else
   {
   str="无!";
   }
   returnstr;
}
Tags:asp.net 截取字符 函数
没有了