string ss = "a[8;11f b[8;12f c[8;13f d[8;14f e[8;16f g[8;17f h[8;18f i[8;19f j[8;20f k[8;21f";
            
            while (ss.IndexOf('f') == -1)
            {
                ss = ss.Remove(ss.IndexOf('['), ss.IndexOf('['));
            }
Console.WriteLine(ss);我想把“[”和“f”之间的内容全部删掉,输出结果为abcdeghijk,按上面的写法为什么不行呢??
大家帮我看看啊

解决方案 »

  1.   

                 string ss = "a[8;11f b[8;12f c[8;13f d[8;14f e[8;16f g[8;17f h[8;18f i[8;19f j[8;20f k[8;21f"; 
                char[] ch = ss.ToCharArray();
                ArrayList al=new ArrayList(ch);
                for (int i = 0; i < ch.Length; i++)
                {
                    if (ch[i] == '[')
                        al.RemoveAt(i);
                } 
      

  2.   

    那就用replace()试试吧!!
    string ss = "a[8;11f b[8;12f c[8;13f d[8;14f e[8;16f g[8;17f h[8;18f i[8;19f j[8;20f k[8;21f"; 
                
                while (ss.IndexOf('f') == -1) 
                { 
                    ss = ss.replace(ss,'f','');
                    //在一次查找'[',替换成'' 
                } 
    Console.WriteLine(ss); 
    未测试!!
      

  3.   


    string ss = "a[8;11f b[8;12f c[8;13f d[8;14f e[8;16f g[8;17f h[8;18f i[8;19f j[8;20f k[8;21f";            while (ss.IndexOf('f') != -1)
                {
                    ss = ss.Remove(ss.IndexOf('['), (ss.IndexOf('f') - ss.IndexOf('['))+1);
                    if (ss.IndexOf('f') == -1)
                    {
                        break;
                    }
                }
                Console.WriteLine(ss);
      

  4.   

    LZ的逻辑一开始就错了,是进不了循环的,而且remove(Int32, Int32)方法是从此实例中的指定位置开始删除指定数目的字符。C# 
    public string Remove(
    int startIndex,
    int count
    )参数
    startIndex
    类型:System.Int32
    开始删除字符的从零开始的位置。 count
    类型:System.Int32
    要删除的字符数。
    建议多看下MSDN
      

  5.   


    string ss = "a[8;11f b[8;12f c[8;13f d[8;14f e[8;16f g[8;17f h[8;18f i[8;19f j[8;20f k[8;21f";
    System.Text.RegularExpressions.Regex regex = new System.Text.RegularExpressions.Regex(@"\[[^\[f]*f");
                Console.WriteLine(regex.Replace(ss, ""));
      

  6.   

    上面完了有个空格,改用这个:\[[^\[f]*f\s*
      

  7.   

      string ss = "a[8;11f b[8;12f c[8;13f d[8;14f e[8;16f g[8;17f h[8;18f i[8;19f j[8;20f k[8;21f";
                Regex reg = new Regex(@"\[8;\d+\d+f");
                string ok=reg.Replace(ss, "");