java.lang.StringIndexOutOfBoundsException

Bom dia a todos
Estou tendo um problema com esse código:
image
O erro esta na linha 18 quando eu tento chamar o primeiro caractere da palavra
Só não entendi o porque sendo que eu nem digitei a frase e ele já lança essa exceção

Não poste imagens, poste o código fonte e formate ele com o botão </>.

O problema é que você está chamando o método nextLine() após ter chamado o método nextInt().

O nextInt() não consome a quebra de linha que é gerada quando você pressiona ENTER, o único método do Scanner que consome a quebra de linha é o nextLine().

Então no seu caso, como ele foi chamado após o nextInt(), ele simplesmente vai consumir a quebra de linha que ficou “pendurada” no buffer de memória e retornar um String vazio.

Se você por mais uma chamada ao nextLine(), vai funcionar, mas a lógica de seu código não vai parecer legal.

O ideal é somente usar o método nextLine() quando se usa o Scanner para ler o TECLADO.

Deu certo mano valeu mesmo, mas teria outra forma de ler o teclado assim?

Eu particularmente prefiro usar somente o nextLine() quando leio o teclado.
Senão, após cada chamada aos outros nextAlgumaCoisa(), você será obrigado a chamar o nextLine() pra consumir a quebra de linha.
Fica um código feio.

Entendi mano, muito obrigado