两个均检查字符串的等号方法

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了两个均检查字符串的等号方法相关的知识,希望对你有一定的参考价值。

我正在使用Java编写房间预订系统。它首先要求一个用户帐户登录,然后要求输入密码。之后,我将使用代码来允许用户进行,删除或更改其房间预订;我的主要问题是我正在编写一个equals方法来检查输入的userID是否与数据库中的用户ID相同,并且我也在编写equals的密码方法以确保User对象的密码与输入的密码匹配。这些都使用字符串输入。 equals方法会发生冲突并在这种情况下出错吗?

i实际上想使用equals方法来确保输入的用户ID与数据库用户ID匹配。接下来,我想将输入的密码与数据库密码进行比较,以确保两者相同。但是,由于两者都接受字符串输入,因此它将密码与userId进行比较还是相反?

未输入房间预订代码。我只是想先解决用户问题。

//This class creates a user object which contains the user id, the corresponding password and the account type

public class User 
    private String userID;
    private String pw;
    private char accType;

    public User(String userID, String pw, char accType)
        this.userID = userID;
        this.pw = pw;
        this.accType = accType;
    

    //this returns the values for a User object to help conduct further checking
    /*getters*/

    public String getUserID()return userID;
    public String getPw() return pw;
    public char getAccType() return accType;

    //we might need to set new values, so include setters.
    /*setters*/
    public void setUserID(String id)this.userID = id;
    public void setPw(String pw)this.pw = pw;



    //toString methods
    public String toString() return "("+userID+" ,"+pw+" ,"+accType+")";



    //check if equals
    public boolean equals(String userID)
        if(this.userID == userID)
            return true;
        else
            return false;
        
    

    public boolean equals(User p) 
        return equals(p.userID);
    

    public boolean equals(String pw)
        if(this.pw == pw)
            return true;
        else
            return false;
        
    

使用这个会是一个好的解决方案吗?

public boolean equals(String str)
    if(this.userID == str || this.pw == str)
        return true;
    else
        return false;
    

答案

字符串比较必须使用equals而不是==

public boolean equals(String str)
    if(this.userID.equals(str) || this.pw.equals(str))
        return true;
    else
        return false;
    

也可以优化方法:

public boolean equals(String str)
    return (this.userID.equals(str) || this.pw.equals(str));

以上是关于两个均检查字符串的等号方法的主要内容,如果未能解决你的问题,请参考以下文章

Java双等号,Equals(),HashCode()小结

Python中的if语句——参考Python编程从入门到实践

js中两个等号(==)和三个等号(===)的区别

python3字符串方法总结

[Java] 为什么字符串比较不能用两个等号(==)

PHP 两个等号 和 三个等号的区别