Normal
... substring(x, x) bzw. in deinem Fall substring(y, y) oder substring(i, i) liefert stets einen Leerstring. Bei dir werden i und y irgendwann grösser als die länge der Strings und das ergibt in beiden Fällen eine Exception (StringIndexOutOfBoundsException).