Problema com string e espaço

6 respostas
java
A

Olá tudo bem? Estou tentando criar um programa que peça ao usuário um nome que precisa de espaço ex: banana branca.

Porém o código não executa a leitura e pula para a linha seguinte. Alguém poderia me ajudar? Ele não a faz leitura da string b.

Criei outro scanner para ajudar no problema mas me disseram que isso não resolve o problema em si

while (c.equalsIgnoreCase("s")) {
			System.out.println("QUAL BANANA VOCÊ IRÁ UTILIZAR");
			String b = s.next();

			System.out.println("QUANTOS GRAMAS DE BANANA VOCÊ IRÁ UTILIZAR?");
			int b1 = s.nextInt();

6 Respostas

S

Utilize o método nextLine().

A
Utilizei o s.next(); mas ele pula para outra linha e o usuário não consegue responder. vou colocar o código aqui.

Scanner s = new Scanner(System.in);

System.out.println(Deseja adicionar uma nova receita? S/N);

String c = s.next();
while (c.equalsIgnoreCase("s")) {
		System.out.println("QUAL BANANA VOCÊ IRÁ UTILIZAR");
		String b = s.nextLine();

nessa parte ela pula para a outra linha e nao consigo responder

System.out.println("QUANTOS GRAMAS DE BANANA VOCÊ IRÁ UTILIZAR?");
		int b1 = s.nextInt();

		System.out.println("QUANTAS COLHERES DE SOPA DE SUCO DE LIMÃO VOCÊ IRÁ UTILIZAR?");
		int co = s.nextInt();

		System.out.println("QUANTAS GRAMAS DE AÇUCAR VOCÊ IRÁ UTILIZAR?");
		int  = s.nextInt();

		System.out.println("QUANTAS GRAMAS DE MANTEIGA VOCÊ IRÁ UTILIZAR?");
		int m = s.nextInt();


}
J

Nessa linha você devia usar nextLine também.

String c = s.nextLine();

E dentro do while você precisa perguntar se a pessoa deseja continuar, senão o while vai continuar forevermente.

S

Quando você usa a classe Scanner para ler o TECLADO, utilize somente o método nextLine(), pois todos os outros métodos não consomem a quebra de linha gerada ao pressionar o ENTER, e você começa a ter comportamentos indesejados.

A

Ok muito obrigada!!

A

Ok, muito obrigada

Criado 22 de maio de 2022
Ultima resposta 23 de mai. de 2022
Respostas 6
Participantes 3