检查字符串数组索引是否等于字符串

时间:2013-11-07 22:48:28

标签: java

因此,我正在尝试检查帐户名列表,以查看运营商输入的用户名是否在数据库中。目前我有:

for(int i = 0; i < rowCount; i ++){
            System.out.println("Stored in array:" + accounts[i+1]);
            System.out.println("name entered:" + LoginPage.usrname);
            if(accounts[i+1] == LoginPage.usrname){
                System.out.println("match");
            }else{
                System.out.println("no match");
            }
        }

我尝试搞乱像indexOf字符串之类的东西,但无法使用任何东西。我确信这是一个简单的解决方案,只是找不到解决方案。我不明白为什么我不能将String数组索引与String变量进行比较,看起来像ti应该是蛋糕。

2 个答案:

答案 0 :(得分:2)

这就是你要找的东西:

if(acounts[i+1].equals(LoginPage.usrname))

== Strings Java上使用Strings运算符不符合您的预期。它不会比较equals的内容,而是比较它们在内存中的地址。 Strings方法会比较Strings

的内容

作为可能有助于您记住的注释,这对Strings来说并不特别特别。 Java是对象,在==中,使用equals比较任何类型的对象都会出现同样的问题。如果要比较您创建的自定义类的两个对象的内容,则必须为该类编写Strings方法。 {{1}}完全相同。

答案 1 :(得分:0)

String是唯一的引用类型,其行为类似于值类型。

在Java尝试使用==运算符比较String时,Java将尝试检查两个引用是否相等,不是字符串。 为了实现值类型比较,您将使用以下之一:

方法1:str1.equals(str)
方法2:str1.compareTo(str) == 0