面试题 在一段字符串中 含有很多相同的 例如"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(); }
相关文章推荐
- [剑指offer][面试题04]实现一个函数,将字符串中的空格替换为“ ”.例如输入“we are happy.”,输出"we are happy.".
- 将输入的字符串(字符串仅包含小写字母‘a’到‘z’),按照如下规则,循环转换后输出:a->b,b->c,…,y->z,z->a;若输入的字符串连续出现两个字母相同时,后一个字母需要连续转换2次。例如:
- 判断一个字符串是否是对称字符串,例如"abc"不是对称字符串,"aba"、"abba"、"aaa"、"mnanm"是对称字符串
- C语言将多个字符串合并为一个字符串例如:数组[a,bbb,ccc]->字符串"a,bbb,ccc"
- 请实现一个函数用来匹配包括'.'和'*'的正则表达式。模式中的字符'.'表示任意一个字符,而'*'表示它前面的字符可以出现任意次(包含0次)。 在本题中,匹配是指字符串的所有字符匹配整个模式。例如,字符串"aaa"与模式"a.a"和"ab*ac*a"匹配,但是与"aa.a"和"ab*a"均不匹配
- // 写一个函数,实现将一个字符串中的'/t'替换成四个'*', '/t'个数不定。如char *p="ht/thdsf/t/ttt/tfds dfsw/t ew/t",替换后p="ht****hdsf********tt****fds dfsw****
- 编程列出一个字符串的全字符组合情况,原始字符串中没有重复字符,例如: 原始字符串是"abc",打印得到下列所有组合情况
- 一段字符串"sdfg,d,ddd,ggg,bbb",取出根据指定的字符取出子字符串.
- 【微软100题】输入一个表示整数的字符串,把该字符串转换成整数并输出。 例如输入字符串"345",则输出整数345
- 编写一个程序,这个程序把一个整数数组中的每个元素用逗号连接成一个字符串,例如,根 据内容为[1][2][3]的数组形成内容为"1,2,3"的字符串。
- 请实现一个方法,把字符串中的每个空格替换成 %20 ,例如,输入"We are happy.",则输出"We%20are%20happy."
- 输入一个字符串,要求输出字符串中字符所有的排列,例如输入"abc",得到"abc","acb","bca","bac","cab","cba"
- 给定一个字符串,请你将字符串重新编码,将连续的字符替换成“连续出现的个数+字符”。比如字符串AAAABCCDAA会被编码成4A1B2C1D2A。
- 系统会随机给你一个日期(yyyy-MM-dd)字符串,你需要计算这个时间上一个月的最后一天的具体日期,最后以yyyy年MM月dd日的字符形式返回
- 替换空格-请实现一个函数,将一个字符串中的空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。
- 2. 编写一个Java应用程序,用户从键盘输入一个1~9999之间的数,程序将判断这个数是几位数,并判断这个数是否是回文数。回文数是指将该数含有的数字逆序排列后得到的数和原数相同,例如12121、32
- (字符串的模式匹配4.7.8)UVA 10008 What's Cryptanalysis?(统计文本中某一个字符的出现的次数,需要从小到大排序&&同次数的按字段序排序)
- (面试题)写一段程序,颠倒一个字符串。注意效率
- 输入一个表示整数的字符串,把该字符串转换成整数并输出。例如输入字符串"345",则输出整数345
- 实现一个函数,将一个字符串中的空格替换成“ ”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We Are Happy