本帖最后由 LoveCcav 于 2010-10-14 10:12:28 编辑

解决方案 »

  1.   


    void Main()
    {
     string s1 = "abcdlkdfsldflasjflkajsdfasdsldfkjsdlkfj";
    string s2 = "ab,fj,fsds,ldfk,kdf";
    List<int> list = new List<int>(); //记录index
    foreach (string s in s2.Split(','))
    {
    int m = s1.IndexOf(s);
    Console.WriteLine(m);
    list.Add(m);
    s1 = s1.Replace(s, "");
    } Console.WriteLine(s1);
    }/*
    0
    35
    -1
    26
    3
    cdlsldflasjflkajsdfasdsjsdlk*/
      

  2.   

    如果str2里的字符串,在str1里多次出现呢?
      

  3.   


    void Main()
    {
        string s1 = "abcdlkdfsldflasjflkajsdfasdsldfkjsdlkfj";
    string s2 = "ab,fj,fsds,ldfk,kdf"; List<int> list = new List<int>(); //记录index
       foreach (Match m in Regex.Matches(s2+",",@"\w*(?=,)"))
       {
        if(m.Value.Length>0)
       {
       int n = s1.IndexOf(m.Value);
       Console.WriteLine(n);
       list.Add(n);
      
       s1 = s1.Replace(m.Value, "");
       }
       }  Console.WriteLine(s1);
    }
    /*
    0
    35
    -1
    26
    3
    cdlsldflasjflkajsdfasdsjsdlk*/
      

  4.   

    不知道把Replace这句话 ,改成 s1 = s1.Remove(m.Index, m.length);
    能不能达到效果 .
      

  5.   

    foreach (string s in s2.Split(','))
    {
      int index = s1.IndexOf(s);
      lst.Add(m);
      s1 = s1.Remove(index, "").
    }
      

  6.   


    这样也不能解决 重复出现的问题 , 我改用双循环, 内层 while(s1.IndexOf(s) != -1)