模糊判断字符串存在与否

 《个人作品》:新人学习

模糊判断字符串存在与否 

 

  目的实现 包含 * 枚举 任意字符串 、_ 枚举 任意单个字符 的 字符串判断 是否存在 返回为 true or false

yi.能实现  包含 * 的字符串

 1         /// <summary>
 2         /// 字符串判断* 任意(字符串)组成
 3         /// </summary>
 4         private static Boolean IfStar(String I,String[] s) 
 5         {
 6             foreach (String i in s) 
 7             {
 8                 if (!I.Contains(i))
 9                     return false;
10                 I = I.Remove(0, I.IndexOf(i) + i.Length);
11             }
12             return true;
13         }

 er.能实现 包含 _ 的字符串

 1         /// <summary>
 2         /// 字符串判断_ 任意(字符)组成
 3         /// </summary>
 4         private static Boolean IfUnder(String I,String[] s) 
 5         {
 6             if(!I.Contains(s[0]))
 7                 return false;
 8 
 9             I = I.Remove(0,I.IndexOf(s[0]));
10 
11             foreach(String i in s)
12             {
13                 if (I.Contains(i) && I.IndexOf(i).Equals(0))
14                 {
15                     try
16                     {
17                         I = I.Remove(0, I.IndexOf(i) + i.Length + 1);
18                     }
19                     catch (Exception e)
20                     {
21                         I = I.Remove(0, I.IndexOf(i) + i.Length);
22                     }
23                 }
24                 else 
25                 {
26                     return false;
27                 }
28             }
29 
30             return true;
31         }

 san.对以上功能总结 实现 * 和 _ 的模糊判断

 1         /// <summary>
 2         /// 字符串判断 *(任意字符串) _(单个字符) 组成
 3         /// </summary>
 4         private static Boolean IfAnd(String I, String S) 
 5         {
 6             foreach (String s in S.Split('*'))
 7             {
 8                 if (s.Contains("_"))
 9                 {
10                     return IfUnder(I,s.Split('_'));
11                 }
12                 else 
13                 {
14                     if (!I.Contains(s))
15                         return false;
16                     try
17                     {
18                         I = I.Remove(0, I.IndexOf(s) + 1);
19                     }
20                     catch (Exception e) 
21                     {
22                         I = I.Remove(0, I.IndexOf(s));
23                     }
24                 }
25 
26             }
27 
28             return true;
29 
30         }

 si.为了不必要进入繁琐 的 代码块 进行 分类 操作

 1         /// <summary>
 2         /// 模糊判断字符串是否存在
 3         /// </summary>
 4         /// <param name="IfName">字符串</param>
 5         /// <param name="ExistString">判断中是否存在的字符串,字符串中的*表示任意字符串,_表示任意一个字符.</param>
 6         /// <returns>true/false</returns>
 7         public static Boolean orExist(String IfName,String ExistString) 
 8         {
 9             //不存在 * 和 _ 并且不等 return false 如果等 return true
10             if (!ExistString.Contains("*") && !ExistString.Contains("_"))
11             {
12                 if (ExistString.Equals(IfName))
13                 {
14                     return true;
15                 }else{
16                     return false;
17                 }
18             }else{
19 
20                 //只存在 * 字符
21                 if (!ExistString.Contains("_"))
22                 {
23                     return IfStar(IfName, ExistString.Split('*'));
24                 }
25                 //只存在 _ 字符
26                 else if (!ExistString.Contains("*"))
27                 {
28                     return IfUnder(IfName, ExistString.Split('_'));
29                 }
30                 //* 和 _ 都存在
31                 else 
32                 {
33                     return IfAnd(IfName,ExistString);
34                 }
35             }
36         }    

 

以上为作者自己想法,如有更好请分享共同探讨!

欢迎读者评论,批评,建议。。。。。。;

 

新人初写微博,文采不好多多见谅。。。。。。

 

posted @ 2017-06-05 23:54  云の空间  阅读(279)  评论(0)    收藏  举报