Почему при j = 5 переменная index получает нулевое значение?
package com.javarush.task.task19.task1927;

import java.io.ByteArrayOutputStream;
import java.io.PrintStream;

/*
Контекстная реклама
*/
public class Solution {
    public static TestString testString = new TestString();

    public static void main(String[] args) throws Exception {
        //сохраняем исходный System.out
        PrintStream cons = System.out;
        //создание объекта класса потока вывода массива
        ByteArrayOutputStream bos = new ByteArrayOutputStream();
        //Инициализируем новый объект класса PrintStream и подменяем им System.out
        PrintStream ps = new PrintStream(bos);
        System.setOut(ps);

        //получаем в ps поток вывода метода printSomething
        testString.printSomething();

        //полученный поток вывода (bos) переводим в строковый массив,кол-во элементов
        //считается по разделителю lineSeparator
        String[] str = bos.toString().split(System.lineSeparator());
        StringBuilder sb = new StringBuilder(bos.toString());
        //определяем строку которую будем подставлять в str
        String context = "JavaRush - курсы Java онлайн" + System.lineSeparator();

        for (int i = 0, j = 0; j < str.length ;  j++) {
            if (i != 0 && (j + 1) % 3 == 0) {
                int index = sb.indexOf(str[j]);
                sb.insert(index, context);
            }
            else i ++;
        }

        bos.reset();
        bos.write(sb.toString().getBytes());
        System.setOut(cons);
        ps.close();
        System.out.println(bos);

    }

    public static class TestString {
        public void printSomething() {
            System.out.println("first");
            System.out.println("second");
            System.out.println("third");
            System.out.println("fourth");
            System.out.println("fifth");
            System.out.println("first");
            System.out.println("second");
            System.out.println("third");
            System.out.println("fourth");
            System.out.println("fifth");
        }
    }
}