面试题 在一段字符串中 含有很多相同的 例如"aaa", 需要随机替换一个为 "bbb" ,其余的替换为空

来源:互联网 发布:淘宝违规编号怎么查询 编辑:程序博客网 时间:2024/05/17 22:26

面试的时候看到这道题,感觉还是有点意思.把代码写下来.如果有更好的代码 欢迎博友指教哈~

 

 

private static string getresult()        {            //原始字符串            string FirstStr = "%img.jpg%";            //需要替换成字符串            string ReplaceStr = "<src = 01.jpg>";                        //准备替换的长字符串            string NeedReplaceStr = "1111%img.jpg%aaaaaa%img.jpg%bbbbbb%img.jpg%ccccccc%img.jpg%dddddd%img.jpg%%img.jpg%eeeeee%img.jpg%ffffff%img.jpg%%img.jpg%ggggggg%img.jpg%33333";            List<string> strarray = new List<string>();            int containsCount = 0;            while (NeedReplaceStr.Contains(FirstStr))            {                if (NeedReplaceStr.IndexOf(FirstStr) == 0)                {                    strarray.Add(NeedReplaceStr.Substring(NeedReplaceStr.IndexOf(FirstStr), FirstStr.Length));                    NeedReplaceStr = NeedReplaceStr.Remove(0, FirstStr.Length);                    containsCount++;                }                else                {                    strarray.Add(NeedReplaceStr.Substring(0, NeedReplaceStr.IndexOf(FirstStr)));                    NeedReplaceStr = NeedReplaceStr.Remove(0, NeedReplaceStr.IndexOf(FirstStr));                }            }            strarray.Add(NeedReplaceStr);            string result = "";            Random ranforrepalce = new Random();            Thread.Sleep(100);            int mm = ranforrepalce.Next(0, containsCount);            int temp = 0;            foreach (string var in strarray)            {                if (var == FirstStr)                {                    if (mm == temp)                    {                        result += ReplaceStr;                    }                    temp++;                }                else                {                    result += var;                }            }            return result;        }        static void Main()        {   //测试输出10次看看效果            for (int i = 0; i < 10; i++)            {                Console.WriteLine(getresult());            }            Console.ReadLine();        }