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

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.

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

1 curtida

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

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

1 curtida

Para ignorar letra maiuscula e minuscula?

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

1 curtida

Show!! Muito obrigado, salvou :slight_smile: