Bom dia a todos
Estou tendo um problema com esse código:

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