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

z2acfund  于 2021-08-20  发布在  Java
关注(0)|答案(1)|浏览(354)

我有一个字符串值存储在一个名为 userPassword ,这是我从使用扫描仪的用户那里得到的。我还有这样一个hashmap:
KeyValue用户名1密码1用户名2密码2用户名3密码3
我有一个变量 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");
}
}
}

即使这两个变量( `userPassword` 及 `mapPassword` )有相同的价值 `123` 这个 `if` 块未执行
koaltpgm

koaltpgm1#

试试这个,我添加了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");
        }
    }
}

相关问题