[RESOLVIDO]Equals retornando falso quando coloco um espaço na String

6 respostas Resolvido
java
C

Olá, estou com uma dúvida.

Quando digito uma String sem espaço em uma variável e utilizo o equals para comparar variaveis, ele retorna true normalmente, no entanto quando coloco um espaço entre o texto e comparo novamente, ele retorna false.

ex de retorno false:

import java.util.Scanner;

public class teste{

public static void main(String[] args){
	Scanner scanner1 = new Scanner(System.in);
	
	String x = "retorna false";
	String y = scanner1.next();
	
	if(x.equals(y)){
		System.out.println("true");
	}else{
		System.out.println("false");
	}
	
	
}

}

ex de retorno true:

import java.util.Scanner;

public class teste{

public static void main(String[] args){
	Scanner scanner1 = new Scanner(System.in);
	
	String x = "retornatrue";
	String y = scanner1.next();
	
	if(x.equals(y)){
		System.out.println("true");
	}else{
		System.out.println("false");
	}
	
	
}

}

A dúvida é, por que isso acontece e como utilizar espaço sem que retorne false.

6 Respostas

Andre_Salvador
Solucao aceita

troque o “next()” por “nextLine()”
ele meio que aceita espaço

C

Opa Andre, deu certo!!
Muito obrigado :smiley: !

Andre_Salvador

@caioharuo também recomendo trocar o “equals” pelo “equalsIgnoreCase”

C

Para ignorar letra maiuscula e minuscula?

Andre_Salvador

Sim.
Mas isso depende muito da sua aplicação na verdade.
Se for comparar senhas por exemplos, melhor o equais mesmo.

C

Show!! Muito obrigado, salvou :slight_smile:

Criado 22 de abril de 2020
Ultima resposta 22 de abr. de 2020
Respostas 6
Participantes 2