我正在尝试检查用户在数据库中保存密码的插入密码 这是我的方法:
private Boolean CheckPassword()
{
TextView txt_pass = (TextView) findViewById(R.id.login_password_txt);
String _writtenPassword = txt_pass.getText().toString().trim();
if (_writtenPassword == userPassword)
return true;
Log.d(TAG, userPassword);
Log.d(TAG, _writtenPassword);
Log.d(TAG, String.valueOf(userPassword.length()));
Log.d(TAG, String.valueOf(_writtenPassword.length()));
return false;
}
日志显示密码和长度 结果是:
123
123
3
3
但是这个方法返回 False !!!
有人可以帮帮我吗?
答案 0 :(得分:4)
试试这个..
字符串您应与.equals("")
if (_writtenPassword.equals(userPassword))
return true;
==
总是只比较两个引用
答案 1 :(得分:0)
使用if-else控件结构,并使用equals()
比较两个字符串,
if (_writtenPassword.equals(userPassword))
return true;
else
return false;
答案 2 :(得分:0)
或者,您可以使用matches
if (_writtenPassword.matches(userPassword))
return true;
///your code
答案 3 :(得分:0)
_writtenPassword == userPassword
和true
的引用相同,表达式_writtenPassword
就为userPassword
。
由于您不关心他们的参考,但您关心他们的价值,因此请使用表达式
_writtenPassword
。equals(userPassword)which is true whenever the value of
_ writtenPassword and
userPassword`相同。
试试这个:
return _writtenPassword.equals(userPassword);