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