Jump to content

Como comparar Strings Java


MrDarkFire14
 Share

Recommended Posts

Comparar passwords... Se calhar não deverias utilizar nenhuma...

Digo isto porque as passwords não devem estar no código, mas sim guardadas  e protegidas/encriptadas/etc numa base de dados. E depois quando queres comparar só consultas a BD...

Mas se queres utilizar directamente no teu código, se calhar a última é a mais indicada...

Link to comment
Share on other sites

Vários modos:

Onde if (s == t) não é um deles. Nunca se comparam Strings em Java usando o operador de comparação ==. Strings são objectos e o operador de comparação compara referências para objectos e não o seu conteúdo. Para piorar, as Strings são objectos imutáveis o que facilita ainda mais que existam referências completamente diferentes para Strings cujo conteúdo até é o mesmo.

A utilização do operador de comparação até pode funcionar em algumas JVMs, mas não faz parte da especificação da linguagem e é receita para que a aplicação não funcione correctamente num sistema operativo diferente ou numa JVM diferente.

Para comparares a password dos utilizadores podes fazer isso de várias maneiras. Se sabes fazer em PHP, em Java é da mesma forma: tipicamente tens uma hash da password na BD, sendo MD5 o mais comum, e o que fazes é pegar na password que o utilizador introduziu, criar uma hash dessa password e comparar com a hash que está na BD. Podes fazer a comparação logo no SQL na cláusula WHERE.

Este é o cenário mais comum, mas podes fazer isto de outras maneiras.

Link to comment
Share on other sites

tipo eu nao quero comparar password eu tenho uma text field com o valor e tenho uma password field com o respectivo valor e o que eu quero fazer é qualquer coisa deste tipo

utilizador e password sao as variaveis que recebem os valores dos respectivos campos

if (utilizador == "utilizador" & password == "123")

tas a entender o que eu quero fazer? 😛

Link to comment
Share on other sites

if (utilizador == "utilizador" & password == "123")

tas a entender o que eu quero fazer? 😛

Nem por isso, mas pelo exemplo que colocaste deves usar o método equals() para fazer a comparação, supondo que as variáveis da condição são Strings:

if (utilizador.equals("utilizador") && password.equals("123")) //...
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.