Вы не говорите, какой язык используете, но в любом случае я не думаю, что ваши индексы - это то, что вы хотите. Если вы находитесь в C#, то конец того, что вы извлекаете, начнется с первого символа после первого пробела и продолжится для количества символов от начала строки до первого пробела. Если вы находитесь в Java, вы извлекаете из первого символа после первого пробела первый пробел, что, конечно, перед первым символом после. Это объясняет вашу ошибку индекса. Вы хотите, чтобы второй indexOf начинался с (или относительно) indexOf первого пробела, а не с начала строки.