string str = "0702110409"; (实际上没有10)string str = "0702101109";  (实际上没有01) 
string str = "0702011209";  (实际上没有11) (str实际上是由01、02、03、04、05、06、07、08、09、10、11、12任意五个组成)判断str里是否包含string target = 01或02或03或04或05或06或07或08或09或10或11或12里的任意一个刚才,各位老师提示说用:str.Contains(target)
str.IndexOf(target) 但是,对于01或11或10的判断,会有问题但如果用List<string> 效率低,有更好的方法吗?谢谢

解决方案 »

  1.   

    晕,这样不是可以吗?怎么又开贴了
      
           public bool  Find(string str, string target)
            {
                for (int n = 0; n < str.Length - 1; n += 2)
                {
                    if (str[n] == target[0] && str[n + 1] == target[1])
                        return true;
                }
                return false;
            }
    bool b1=Find("0702110409","10"); //结果是false
    bool b2=Find("0702110409","11"); //结果是true
      

  2.   

    判断有没有10:
    string str = "0702110409";
    bool r = Regex.Matches(str, @"\d{2}").Cast<Match>().Select(x => x.Value).Contains("10");
    Console.WriteLine(r);
      

  3.   

    string str = "0702110409"; 
    string str2="数字";
    bool t=Regex.IsMatch(str,@"(?<=(\d{2})*)"+str2);
      

  4.   

    判断有没有01、02、03、04、05:
    string[] ss = { "01", "02", "03", "04", "05" };
    string str = "0702110409";
    bool r = Regex.Matches(str, @"\d{2}").Cast<Match>().Select(x => x.Value).Any(x => ss.Contains(x));
    Response.Write(r);
      

  5.   


    老师,是这样的
    我的string target = "10";按您的写法 target[0],target[1],下面出现红色波浪线,我错在哪里呢?
      

  6.   


            public static bool Find(string str, string target)
            {
                return Regex.Matches(str, @"\d{2}").Cast<Match>().Select(x => x.Value).Contains(target);
            }
      

  7.   

    错误:
       运算符"=="无法应用于"char"和"string"类型的操作数
      

  8.   

    grp[c-7] 相当于 str
    nums[r - 2] 相当于 target
      

  9.   

    你把我定义的那个函数复制进去
    直接这样判断不行吗?
    if(Find(grp[c-7],nums[r-2])) 
      //找到
    else
      //没找到
      

  10.   

    我的grp 是这样定义的
     List<string> grp = new List<string>();
      

  11.   

    List<List<string>> nums = new List<List<string>>();
      

  12.   

    这个没事
    grp[c-7]会自动是string类型
    grp[c-][n]是char类型目测nums[r-2]不是string类型的 
      

  13.   

    这肯定不行啊
    nums[r-2][0]这个是string类型
    nums[r-2][0][0]这个才是char类型
      

  14.   

    哦,明白了,问题解决了,速度的确快了很多很多很多很多,谢谢gxingmin老师为什么用List<string>会影响速度呢?