Olá galera… sou meio novo em programação em Java, estou com um problema em um código de array. Pelo que me aparece está todo certo porém quando termina o loop dá um erro que não entendi.
Scanner in = new Scanner(System.in);
int n = in.nextInt();
Contatos[] vect = new Contatos[n];
for(int i = 0; i<=vect.length; i++) {
in.nextLine();
String nome = in.nextLine();
int numero = in.nextInt();
vect[i] = new Contatos(nome, numero);
}
Ou você adiciona uma chamada ao nextLine()
após qualquer nextInt()
Ou substitua
in.nextInt()
Por
Integer.parseInt(in.nextLine())
Se ler a documentação do Scanner
, vai descobrir que o único método que consome o caractere de quebra de linha é o nextLine()
.
Então se você chama o nextInt()
e em seguida o nextLine()
, você não estará lendo uma nova linha, estará simplesmente lendo a quebra de linha que foi gerada ao pressionar ENTER
após digitar um número.
obrigado mano, consegui usei Integer.parseInt(in.nextLine()), onde eu tinha colocado os int. e funcionou. vlw mesmo, vou usar mais esse comando.