截取字符串是我们经常会面临的一个问题,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(" ", " "); tempString = tempString.Replace("<", "<"); tempString = tempString.Replace(">", ">"); 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; }
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。