模糊查找字符串
2010-07-21 09:02 starlet 阅读(1405) 评论(0) 收藏 举报例如:镀铬U型盾面立体格栅,多层次豪华光亮饰条,防紫外线绿色隔热玻璃,防爆玻璃,内隐式印刷天线,欧风动感鲨鱼鳍天,精铸铝合金轮毂,绿色节能轮胎205/55 R16,运动型抛光双尾管
想查处带“玻璃”的项
即:防紫外线绿色隔热玻璃,防爆玻璃
就需要遍历整个字符串数组,并且模糊查询
利用list FindAll方法实现上述要求:
直接贴码:
1 /// <summary>
2 /// 提取源字符串中,包含关键字的字符串
3 /// </summary>
4 /// <param name="sourceStr">原字符串 半角逗号分割</param>
5 /// <param name="keywordStr">关键字字符串 /分割多关键字</param>
6 private string PickupKeyword(string sourceStr,string keywordStr)
7 {
8 //分割并放置list项
9 string[] DStandSetStringV = sourceStr.Split(',');
10 List<string> l = new List<string>();
11 for (int i = 0; i < DStandSetStringV.Length; i++)
12 {
13 l.Add(DStandSetStringV[i]);
14
15 }
16 string b = keywordStr;
17 string[] bf = b.Split('/');
18 string valString = string.Empty;
19 foreach (string bfString in bf)
20 {
21 List<string> ttl = l.FindAll(delegate(string t) { return t.IndexOf(bfString) > -1; });
22 for (int j = 0; j < ttl.Count; j++)
23 {
24 if (j == 0 && valString == string.Empty)
25 {
26 valString += ttl[j].ToString();
27 }
28 else
29 {
30 valString += "," + ttl[j].ToString();
31 }
32
33 }
34 }
35
36 return valString;
37 }
2 /// 提取源字符串中,包含关键字的字符串
3 /// </summary>
4 /// <param name="sourceStr">原字符串 半角逗号分割</param>
5 /// <param name="keywordStr">关键字字符串 /分割多关键字</param>
6 private string PickupKeyword(string sourceStr,string keywordStr)
7 {
8 //分割并放置list项
9 string[] DStandSetStringV = sourceStr.Split(',');
10 List<string> l = new List<string>();
11 for (int i = 0; i < DStandSetStringV.Length; i++)
12 {
13 l.Add(DStandSetStringV[i]);
14
15 }
16 string b = keywordStr;
17 string[] bf = b.Split('/');
18 string valString = string.Empty;
19 foreach (string bfString in bf)
20 {
21 List<string> ttl = l.FindAll(delegate(string t) { return t.IndexOf(bfString) > -1; });
22 for (int j = 0; j < ttl.Count; j++)
23 {
24 if (j == 0 && valString == string.Empty)
25 {
26 valString += ttl[j].ToString();
27 }
28 else
29 {
30 valString += "," + ttl[j].ToString();
31 }
32
33 }
34 }
35
36 return valString;
37 }
浙公网安备 33010602011771号