asp.net c#灵活截取指定字符串函数

 

也是从博客园copy的,觉得这个有用,略作了优化:

 1 public string StringTruncate(string str, string start, string last, int n)
2 {
3 if (str.ToLower().IndexOf(start.ToLower()) >= 0)
4 {
5 if (str.ToLower().IndexOf(last.ToLower()) >= 0)
6 {
7 switch (n)
8 {
9 //左右都截取(都取前面)(包含关键字)
10 case 1: 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;
11 //左右都截取(都取前面)(去除关键字)
12 case 2: 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;
13 //左右都截取(都取后面)(包含关键字)
14 case 3: 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;
15 //左右都截取(都取后面)(去除关键字)
16 case 4: 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;
17 //左右都截取(一前一后)(包含关键字)
18 case 5: 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;
19 //左右都截取(一前一后)(去除关键字)
20 case 6: 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;
21 default: str = ""; break;
22 }
23 }
24 else
25 {
26 switch (n)
27 {
28 //只往左截取(取前面的)(包含关键字)
29 case 7: str = str.Substring(0, str.ToLower().IndexOf(start.ToLower()) + start.Length); break;
30 //只往左截取(取前面的)(去除关键字)
31 case 8: str = str.Substring(0, str.ToLower().IndexOf(start.ToLower())); break;
32 //只往左截取(取后面的)(包含关键字)
33 case 9: str = str.Substring(0, str.ToLower().LastIndexOf(start.ToLower()) + start.Length); break;
34 //只往左截取(取后面的)(去除关键字)
35 case 10: str = str.Substring(0, str.ToLower().LastIndexOf(start.ToLower())); break;
36 //只往右截取(取前面的)(包含关键字)
37 case 11: str = str.Substring(str.ToLower().IndexOf(start.ToLower()), str.Length - str.ToLower().IndexOf(start.ToLower())); break;
38 //只往右截取(取前面的)(去除关键字)
39 case 12: str = str.Substring(str.ToLower().IndexOf(start.ToLower()) + start.Length, str.Length - str.ToLower().IndexOf(start.ToLower()) - start.Length); break;
40 //只往右截取(取后面的)(包含关键字)
41 case 13: str = str.Substring(str.ToLower().LastIndexOf(start.ToLower()), str.Length - str.ToLower().LastIndexOf(start.ToLower())); break;
42 //只往右截取(取后面的)(去除关键字)
43 case 14: str = str.Substring(str.ToLower().LastIndexOf(start.ToLower()) + start.Length, str.Length - str.ToLower().LastIndexOf(start.ToLower()) - start.Length); break;
44 //default: str = "无!"; break;
45 }
46 }
47 }
48 //else { str = "无!"; }
49 return str;
50 }

 

转载于:https://www.cnblogs.com/zhjw/archive/2011/12/30/2307463.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值