Allora... per prima cosa non vedo perchè non hai dichiarato il metodo come void visto che non te ne fai niente dell'array che viene restituito.
Seconda cosa: quello che mi pare tu voglia fare è spezzettare la stringa in un array di stringhe, ciascuna contenente un carattere della stringa di partenza... per fare questo, devi far avanzare anche il secondo indice di substring...
La sintassi del metodo che hai usato, infatti è la seguente:codice:x[i] = aString.substring(i, i+1);
substring(int beginIndex, int endIndex) e prende la stringa a partire dal carattere in posizione beginIndex inclusa fino a endIndex esclusa.
Mettendo 1 come secondo parametro, ovviamente ti dava errore quando i era maggiore di 1: come fai a prendere una stringa a partire dal carattere in posizione 2 fino al carattere in posizione 1?
Ciao.