简单登录Java程序
我对Java非常陌生,我想制作一个非常简单的登录Java程序。 不要考虑安全问题,在这个例子中,我只需要帮助就可以了。 我的“帐户信息”必须存储在数组中 这是我的代码: --主要-- --使用者--- 我想这应该是一个非常简单的函数,但由于某些原因,if语句永远不会返回“true” 我做错了什么简单登录Java程序,java,login,Java,Login,我对Java非常陌生,我想制作一个非常简单的登录Java程序。 不要考虑安全问题,在这个例子中,我只需要帮助就可以了。 我的“帐户信息”必须存储在数组中 这是我的代码: --主要-- --使用者--- 我想这应该是一个非常简单的函数,但由于某些原因,if语句永远不会返回“true” 我做错了什么 Jesper.您做的字符串比较是错误的,在java中,您需要使用.equals()isntead的= 后者比较两个对象引用,这不是您想要的。试试这个 if((username.equals(accoun
Jesper.您做的字符串比较是错误的,在java中,您需要使用
.equals()
isntead的=
后者比较两个对象引用,这不是您想要的。试试这个
if((username.equals(accounts[0][0])) && (password.equals(accounts[0][1])))
哪个
if
statement?if语句主要在底部。如果我直接传入信息,“jesper”和“abc123”,if语句为true。但由于某些原因,在使用变量时不会这样做?是的,这可能是因为JVM足够聪明,可以对相同的字符串文本使用相同的字符串对象。总之,你对==
的使用是错误的。嘿,Uku,你的建议成功了,谢谢!供将来参考:java中的对象实现了equals
方法。对于javaString
此方法定义为逐字符比较字符串值。比较对象的正确方法是使用equals
方法。Java还有一些基本类型,如ints
和double
s,它们不是Object
s,因此您可以将它们与=
进行比较。简而言之:永远不要使用“==”来比较对象(这会比较对象引用,它们基本上是内存地址)。这是一个很好的信息——我认为这解释了为什么==运算符在我的世界中“有时有效,有时无效”。)嘿,这就成功了。以前从未偶然发现过.equals()函数,但我想我需要从现在开始使用它。谢谢!
public class users {
private String username;
private String password;
private String[][] accounts = {{"jesper", "abc123"},{"christian", "abc123"}};
public users(String user, String pass){
username = user;
password = pass;
}
public boolean auth(){
if((username == accounts[0][0]) && (password == accounts[0][1]))
return true;
else
return false;
}
}
if((username.equals(accounts[0][0])) && (password.equals(accounts[0][1])))