题目:
请实现一个方法:传入两个字符串,返回第二个字符串在第一个字符串中所有出现的位置,并写出Unit Test的测试数据。
int[] GetAllIndex(string s1,string s2)
嗯, 帮测试了一个 但是期待更好的办法。
string a = "abbcbb1bb"; string b = "bb";
var contain = true; List<int> list = new List<int>(); while (contain) { if (a.Contains(b)) { var Index = a.IndexOf(b); Regex r = new Regex(b); a = r.Replace(a, "*".PadLeft(b.Length,'*'), 1); list.Add(Index); } else { contain = false; } } list.ForEach((p) => { Response.Write(p); Response.Write("</br>"); });
static int[] GetAllIndex(string s1, string s2) { List<int> ls = new List<int>(); int pos = -1; do { pos = s1.IndexOf(s2, pos + 1); if (pos != -1) ls.Add(pos); } while (pos != -1); return ls.ToArray(); }