Eu estou resolvendo neste momento uma lista de exercícios para estudo. E estou com um probleminha chato, que creio eu seja relacionado a classe Scanner.
Segue abaixo o código:
[/b]
[code]import java.util.Scanner;
public class ExercicioVetUm {
public static void main(String args[]) {
String n[] = new String [10];
int informado = 0;
Scanner input = new Scanner(System.in);
System.out.println( " - Informe 10 nomes: ");
for (int i = 0; i < n.length; i++){
n[i] = input.nextLine();
}
do{
System.out.println( " - informe um indice para busca do nome: ");
informado = input.nextInt();
if (informado != -1){
System.out.println(" - O numero procurado é: " + n[informado]);
}
System.out.println(" - Para sair digite -1 - ");
informado = input.nextInt();
}while(informado != -1);
}
}[/code]
O problema se da quando tento digitar a sexta posição do array, aparece a seguinte mensagem:
Exception in thread “main” java.util.InputMismatchException
at java.util.Scanner.throwFor(Scanner.java:840)
at java.util.Scanner.next(Scanner.java:1461)
at java.util.Scanner.nextInt(Scanner.java:2091)
at java.util.Scanner.nextInt(Scanner.java:2050)
at ExercicioVetUm.main(ExercicioVetUm.java:28)
[b]Já tentei resolver, mas sem sucesso algum. Será que alguem pode me da uma ajuda?
Esse erro acontece quando você pede um inteiro, no seu caso usando o ‘input.nextInt()’, e no console digita um valor que não é inteiro, causando incompatibilidade de tipos. Você teria que tratar isso para ter certeza que o usuário digitou mesmo um valor inteiro.
- Informe 10 nomes:
1
2
3
4
5
6
7
8
9
0
- informe um indice para busca do nome:
1
- O numero procurado é: 2
- Para sair digite -1 -
0
- informe um indice para busca do nome:
6
- O numero procurado é: 7
- Para sair digite -1 -
0
- informe um indice para busca do nome:
11
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 11
at ExercicioVetUm.main(ExercicioVetUm.java:24)
public static void main(String args[]) {
String n[] = new String[10];
int informado = 0;
Scanner input = new Scanner(System.in);
System.out.println(" - Informe 10 nomes: ");
for (int i = 0; i < n.length; i++) {
n[i] = input.nextLine();
}
do {
System.out.println(" - informe um indice para busca do nome: ");
System.out.println(" - Para sair digite -1 - ");
informado = input.nextInt();
if (informado != -1) {
System.out.println(" - O numero procurado é: " + n[informado]);
}
} while (informado != -1);
}
[b]Estranho pessoal, eu estava usando o “JCreator” e ocorria este problema, foi so passar o código para o Eclipse que não ocorreu mais problema. Vai lá sabe o que ta rolando
auhauhahuahahhauhahauhaahuauuahauh