大虾们,小弟向各位请教个问题:
在网上找了很多,都没达到此效果。请帮忙哦
小弟做的是考试系统,是答案匹配问题。比如:string str1="ABCD";
      string str2="AC";
如何判断str2包含于str1里面?
用indexof()方法,只能判断"AB"包含于"ABCD"里,不能判断"AC"包含于"ABCD"里面。

解决方案 »

  1.   

     判断"AC"包含于"ABCD"里面, 自己写一个把,很简单的..
      

  2.   

       string str1="ABCD"; 
       string str2="AC"; 
       bool flag =true;
       foreach(char c in str2)
       {
         if(str2.IndexOf(c)==-1)
         {
            flag = false;
            break;
         }
       }
       if(flag)
       {MessageBox.Show("存在");}
       else {MessageBox.Show("不存在");}
      

  3.   

    //刚才手误,不好意思,修改了 
    string str1="ABCD"; 
      string str2="AC"; 
      bool flag =true; 
      foreach(char c in str2) 
      { 
        if(str1.IndexOf(c)==-1) 
        { 
            flag = false; 
            break; 
        } 
      } 
      if(flag) 
      {MessageBox.Show("存在");} 
      else {MessageBox.Show("不存在");}
      

  4.   

    for(int i=0;i<str2.length,i++)
    {
    if(str1.Contains(str2[i]))
    {
    Flag=true
    }
    }
      

  5.   


    也谢谢大哥你的解答,如果我没有理解错你的代码的话,你的代码应该是:
    string str1 = "ABCD";
    string str2 = "AC";
    bool flag = true;
    for (int i = 0; i < str2.Length; i++)
    {
       if (str1.Contains(str2[i]))
       {
           flag = true;
       }
    }
    if (flag)
    {
       Response.Write("正确");
    }
    else
    {
       Response.Write("错误");
    }
    我测试了一下,如果我string str2="ABE"话,就不能测试成功了。也再次谢谢大哥你的解答。
      

  6.   

    按照你的意思CA也在ABCD里了??
      

  7.   

    按理来说,是应该要把它判断为正确的,尽管我的str2里的字符串是升序排列的。4楼:ljhcy99这位大哥的foreach循环用的恰到好处,太绝了,呵呵。
    我刚开始时,是用indexOf()直接将两个字符串匹配,所以导致只能判断"AB"包含于"ABCD"里,不能判断"AC"包含于"ABCD"里面。希望对有同样需求并还未能解答的朋友有所帮助,谢谢各位的关注与帮助...