using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;namespace TH
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("请输入原字符串:");
            string s = Console.ReadLine();
            Console.WriteLine("请输入你需要被替换的子字符串:");
            string s1 = Console.ReadLine();
            Console.WriteLine("请输入你需要替换成的子字符串:");
            string s2 = Console.ReadLine();
            string s3 = s.Replace(s1, "");
            int count = (s.Length - s3.Length) / s1.Length;
            Console.Write("一共需要经过");
            Console.Write(count);
            Console.WriteLine("次替换!");            string ss1 = " ";
            for (int i = 1; i <=count; i++)
            {
             
                int a = s.IndexOf(s1);//第一个子串在原字符串中的位置
                string ss = s.Substring(0, a + s1.Length);//从第一个字符开始截取到含有第一个子串的位置结束
                s = s.Substring(a + s1.Length);//截取后剩余的字符串
               
                    ss1 = ss.Replace(s1, s2);
                    char[] r = ss1.ToCharArray();                    Console.WriteLine(ss);
                    Console.WriteLine(s);
                    Console.WriteLine(ss1);
            }
        }
    }
}
小弟刚学C# 现在遇到一个问题 算是很简单的 可是转不过来弯 求大侠帮忙 如上述程序代码 目地就是通过字符串查找 截取 替换来实现一个字符串中制定字符串的替换 比如键盘输入“12abc34abc56abcjk” 然后我要把"abc"替换成“m” 使最后结果变成“12m34m56mjk” 具体方法我已经基本实现了 但是最后我需要把每次得到的ss1拼接起来 但是每次我得到的最后结果只是最后一次替换的 比如我举得这个例子要循环3次实现最终替换 可我得到的只是56mjk 而不是12m34m56mjk 坐等高手 谢谢了 
对了 还有就是我的代码里面  Console.Write("一共需要经过");
                           Console.Write(count);
                           Console.WriteLine("次替换!");
可不可以一句代码实现Console.WriteLine("一共需要count次替换");另外我的思路是把每次得到的ss1转换成字符数组char[] r = ss1.ToCharArray();然后遍历输出,可是也得不到我想要的结果 不知道哪里弄错了

解决方案 »

  1.   

    Console.WriteLine("一共需要"+count+"次替换");
      

  2.   

    Console.WriteLine("请输入原字符串:");
    string s = Console.ReadLine();
    Console.WriteLine("请输入你需要被替换的子字符串:");
    string s1 = Console.ReadLine();
    Console.WriteLine("请输入你需要替换成的子字符串:");
    string s2 = Console.ReadLine();
    Console.WriteLine("一共需要" + (s.Split(new string[] { s1 }).Count()).ToString() - 1 + "次替换");
    string result = string.Join(s2, s.Split(new string[] { s1 }));