将 hashmap 中的值与普通字符串进行比较时出现比较错误

时间:2021-07-04 10:33:57

标签: java hashmap equals

我有一个字符串值存储在一个名为 userPassword 的变量中,这是我使用扫描仪从用户那里得到的。我也有一个这样的哈希图:

<头>
价值
用户名1 密码1
用户名2 password2
用户名3 password3

我有一个值为 userPassword 的变量 123,还有一个 hashmap 中的值也是 123

public class Authentication {
    public void verifyLogin(LoginDetailsPojo userLoginDetailsObj, Map<String,String> map){
    //Passing a object and hash map as parameters
        String userPassword = userLoginDetailsObj.password;
        System.out.println(userPassword);//Printing "123"
        String mapPassword = map.get(userLoginDetailsObj.userName);
        System.out.println(mapPassword); //Printing "123"
        if(userPassword.equals(mapPassword))
            System.out.println("it is equal");
        }
    }
}

即使两个变量(userPasswordmapPassword)具有相同的值 123if 块也没有执行

1 个答案:

答案 0 :(得分:0)

试试这个,我添加了 trim() 来删除任何头部或尾部空格

public class Authentication {
    public void verifyLogin(LoginDetailsPojo userLoginDetailsObj, Map<String,String> map){
    //Passing a object and hash map as parameters
        String userPassword = userLoginDetailsObj.password;
        System.out.println(userPassword);//Printing "123"
        String mapPassword = map.get(userLoginDetailsObj.userName);
        System.out.println(mapPassword); //Printing "123"
        if(userPassword.trim().equals(mapPassword.trim()))
            System.out.println("it is equal");
        }
    }
}
相关问题