• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

The Red Guy

[Ajuda] Método hasNext()

2 mensagens neste tópico

Boas. Estou a fazer um programa que consiste em dois métodos, um que tem como objectivo a selecção de palavras iniciadas por uma dada letra e o retorno do número de vezes que essas palavras ocorrem no texto e outro em que se tem que contabilizar o número de vezes que uma letra ocorre nas palavras de todo o texto. Visto que recebo um ficheiro de texto, decidi colocar todas as palavras num array de Strings, mas para saber o tamanho deste decidi recorrer ao seguinte método:

private int quantasPalavras(File ficheiro) throws IOException {
	Scanner ficheiroDado = new Scanner(ficheiro);
	int numeroPalavras = 0;

	while (ficheiroDado.hasNext()) 
		numeroPalavras ++;

	return numeroPalavras;
}

Ao tentar correr o programa, quando este utiliza o método acima vai se dar um ciclo infinito. As minhas dúvidas são as seguintes: porque é que vai ocorrer um ciclo infinito e porque é que quando eu coloco um System.out.println(ficheiroDado.next()) dentro do while o ciclo deixa de ser infinito.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Porque não estás a actualizar o iterador. O método hasNext apenas diz se existe algum elemento a seguir ao actual. Precisas do next para o obter.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora