2 palavras iguais sao difrentes

Estou a usar sqlite para fazer um login, entretanto para comparar as palavras do login e do banco de dados usei o seguinte codigo:

public static boolean result(String nome, String pass) {
	Connection c = null;
	Statement stmt = null;
	boolean bo = false;
	try {
		Class.forName("org.sqlite.JDBC");
		c = DriverManager
				.getConnection("jdbc:sqlite:C:/Users/M4UR0/Desktop/Pastas/Programação/Java/Albamoura/data.db");
		c.setAutoCommit(false);

		stmt = c.createStatement();
		ResultSet rs = stmt.executeQuery("SELECT * FROM COMPANY where NAME = '" + nome + "';"); //

		String password = rs.getString("PASSWORD");
		if (rs.next() || !pass.equalsIgnoreCase(password)) {
			bo = false;
			System.out.println("deu1 " + password + " - " + pass);
		} else {
			System.out.println("Entrou!");
			bo = true;
		}

		rs.close();
		stmt.close();
		c.close();
	} catch (Exception e) {
		System.err.println(e.getClass().getName() + ": " + e.getMessage());
		System.exit(0);
		bo = false;
	}
	System.out.println("Operation done successfully");
	return bo;
}

E dá me o seguinte na consola:
> Conecção estabelecida!
> deu1 word - word
> Operation done successfully
> false

Ou seja as 2 palavras iguais aparecem como difrentes, não reparei em algo? Ajuda pf

Pela saída do console, ele esta entrando certo no if, no caso, sendo verdadeiro as duas condições.

Pois o equalsIgnoreCase, ele vai comparar as duas strings, caso as duas forem iguais, indiferente de letras maiúsculas e minusculas. Por Exemplo: “A” == “a”.

https://docs.oracle.com/javase/7/docs/api/java/lang/String.html#equalsIgnoreCase(java.lang.String)

1 curtida

Esqueci-me de negar o equalsIgnoreCase mas apos negar continua a dar a mesma coisa

O simbolo de == compara se a posição na memoria de dois objetos são o mesmo, enquanto o equals compara se o conteúdo de dois objetos são iguais…

String palavra1 = “teste”;
String palavra 2 = “teste”;
System.out.println(palavra1 == palavra2); //vai retornar false
System.out.println(palavra1.equals(palavra2)); //vai retornar true

Não testei, mas a resposta do seu questionamento é mais ou menos essa, sempre compare Strings usando “equals”