Я пытаюсь создать функцию, которая возвращает индекс N-го вхождения данного char в строку.
Вот моя попытка:
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' или что?