我正在尝试创建一个函数,该函数返回字符串中给定字符第N次出现的索引。
这是我的尝试:
private int IndexOfNth(string str, char c, int n)
{
int index = str.IndexOf(c) + 1;
if (index >= 0)
{
string temp = str.Substring(index, str.Length - index);
for (int j = 1; j < n; j++)
{
index = temp.IndexOf(c) + 1;
if (index < 0)
{
return -1;
}
temp = temp.Substring(index, temp.Length - index);
}
index = index + (str.Length);
}
return index;
}
这应该找到第一个匹配项,去掉字符串的前面部分,从新的子字符串中找到第一个匹配项,然后继续下去,直到得到第n个匹配项的索引。然而,我没有考虑到最后一个子串的索引将如何从原始字符串中的原始实际索引偏移。我该怎么做呢?
另外,作为一个次要问题,如果我想让char作为制表符,我应该传递这个函数'\t‘还是什么?
https://stackoverflow.com/questions/11363083
复制相似问题