您的位置:首页 > 职场人生

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

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

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();
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐