Problema com string e espaço

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();

Utilize o método nextLine().

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 aç = s.nextInt();

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


}

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.

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.

2 curtidas

Ok muito obrigada!!

Ok, muito obrigada