#indexing #substring #bounds
#индексирование #подстрока #границы
Вопрос:
Я пытаюсь получить подстроку из большой строки данных, которая у меня есть, но когда я использую эту строку:
string output = datastring.substring(0, datastring.Length-1)
это говорит мне, что индекс выходит за рамки («Индекс и длина должны ссылаться на местоположение в строке»).
Это сработало просто отлично, так что outputstring выводится как то же самое, что и datastring
while (index < datastring.Length)
{
outputstring = datastring[index];
index ;
}
Однако это выдает ошибку:
if (index 10 < datastring.Length)
{
if (datastring.substring(index, index 10) == "name")
{
outputstring = " found instance of 'name'";
}
}
Это говорит о том, что индекс выходит за рамки. Как индекс может выходить за пределы во втором операторе ‘if’, когда я уже проверил, что индекс 10 находится в пределах диапазона?
Ответ №1:
Это .substring(offset, length)
, не .substring(startOffset, endOffset)
.
Вместо
datastring.substring(index, index 10)
использовать
datastring.substring(index, 10)