两个均检查字符串的等号方法
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));
以上是关于两个均检查字符串的等号方法的主要内容,如果未能解决你的问题,请参考以下文章