无法比较两个字符串变量与不同的引用

时间:2014-04-12 11:38:26

标签: android eclipse

我正在尝试检查用户在数据库中保存密码的插入密码 这是我的方法:

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 !!!

有人可以帮帮我吗?

4 个答案:

答案 0 :(得分:4)

试试这个..

字符串您应与.equals("")

进行比较
if (_writtenPassword.equals(userPassword))
            return true;

==总是只比较两个引用

请参阅此String comparison

答案 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 == userPasswordtrue的引用相同,

表达式_writtenPassword就为userPassword

由于您不关心他们的参考,但您关心他们的价值,因此请使用表达式 _writtenPassword。equals(userPassword)which is true whenever the value of _ writtenPassword and userPassword`相同。

试试这个:

return _writtenPassword.equals(userPassword);
相关问题