Ler entrada com scanner

4 respostas
paulo_felisbino1

Olá,

Estou tentando ler uma entrada no formato:

m linhas
linha em branco
n linhas

Por algum motivo, quando vou ler as n linhas finais, o programa não termina, nem trava, nem nada...

public static void main(String[] args){
		Scanner sc = new Scanner(System.in);
		
		String linha = sc.nextLine();
		String conhecida = "";
		while(!(linha.equals(""))){
			conhecida += linha + "\n";
			linha = sc.nextLine(); 
		}
		System.out.println(conhecida);		
		String codificada = "";	
		while(sc.hasNextLine()){
			linha = sc.nextLine();
			codificada += linha + "\n";
		}
                System.out.println(codificada);
	}

Alguém?

Abraços,
Paulo

4 Respostas

douglas_vidotto

Pelo que entendi,o seu programa entrou em loop infinito,é isso? Se for, acredito que seja devido ao while que tem o método sc.hasNextLine().

paulo_felisbino1

Eu acho q entrou, pq ele imprime corretamente a “conhecida”, mas não chega a imprimir a “codificada”…

douglas_vidotto

Isso por que o método hasNextLine vai ficar te pedindo entradas toda hora. Você precisa usar outra condição de parada no seu loop while.

paulo_felisbino1

Aí é q tá o problema…
Eu não sei quantas linhas terão que ser lidas por aquele while… pode ser desde 1 linha até 20 linhas, por exemplo, não tem um número definido de linhas…

Criado 11 de junho de 2011
Ultima resposta 11 de jun. de 2011
Respostas 4
Participantes 2