Java Equals方法不在字符串[]中工作

Java Equals方法不在字符串[]中工作,java,equals,Java,Equals,为什么这不起作用,我该怎么做才能让它起作用 public String modUsernames[] = {"Test", "Test2"}; public String adminUsernames[] = {"Mod Jack", "Mod Demon"}; if (username.equals(modUsernames)) { rights = 1; } if (username.equals(adminUsernames)) { rights = 2; } 不应将字

为什么这不起作用,我该怎么做才能让它起作用

public String modUsernames[] = {"Test", "Test2"};
public String adminUsernames[] = {"Mod Jack", "Mod Demon"};

if (username.equals(modUsernames)) {
    rights = 1;
}
if (username.equals(adminUsernames)) {
    rights = 2;
}
不应将字符串与数组进行比较,如果username是数组,则无法检查两者是否相同

public String modUsernames[] = {"Test", "Test2"};
public String adminUsernames[] = {"Mod Jack", "Mod Demon"};

if (username.equals(modUsernames)) {
    rights = 1;
}
if (username.equals(adminUsernames)) {
    rights = 2;
}
为此使用
Arrays.equals(ar1,ar2)

public String modUsernames[] = {"Test", "Test2"};
public String adminUsernames[] = {"Mod Jack", "Mod Demon"};

if (username.equals(modUsernames)) {
    rights = 1;
}
if (username.equals(adminUsernames)) {
    rights = 2;
}
或者使用数组索引和循环逐个检查

public String modUsernames[] = {"Test", "Test2"};
public String adminUsernames[] = {"Mod Jack", "Mod Demon"};

if (username.equals(modUsernames)) {
    rights = 1;
}
if (username.equals(adminUsernames)) {
    rights = 2;
}
(username.equals(modUsernames)) 
或者您可以使用
Arrays.toString()
并使用
contains
方法

public String modUsernames[] = {"Test", "Test2"};
public String adminUsernames[] = {"Mod Jack", "Mod Demon"};

if (username.equals(modUsernames)) {
    rights = 1;
}
if (username.equals(adminUsernames)) {
    rights = 2;
}
username.equals(modUsernames[0])

假设
username
是一个
String
:变量
modUsernames
是一个
String
s数组,它不是一个
String
。您必须将
字符串
用户名
与该数组的一个元素集进行比较:

public String modUsernames[] = {"Test", "Test2"};
public String adminUsernames[] = {"Mod Jack", "Mod Demon"};

if (username.equals(modUsernames)) {
    rights = 1;
}
if (username.equals(adminUsernames)) {
    rights = 2;
}
Arrays.toString(modUsernames).contains(username);
比如说

public String modUsernames[] = {"Test", "Test2"};
public String adminUsernames[] = {"Mod Jack", "Mod Demon"};

if (username.equals(modUsernames)) {
    rights = 1;
}
if (username.equals(adminUsernames)) {
    rights = 2;
}
注意:访问数组元素的方式是使用索引:

public String modUsernames[] = {"Test", "Test2"};
public String adminUsernames[] = {"Mod Jack", "Mod Demon"};

if (username.equals(modUsernames)) {
    rights = 1;
}
if (username.equals(adminUsernames)) {
    rights = 2;
}

大多数编程语言中的索引从
0
开始。因此,如果数组的长度为2(即它有两个元素),则只能使用索引
0
1
,如其他人所述,您无法将
字符串
字符串[]
进行比较,您可以做的是检查
字符串
是否包含在
字符串[]
中,例如:

public String modUsernames[] = {"Test", "Test2"};
public String adminUsernames[] = {"Mod Jack", "Mod Demon"};

if (username.equals(modUsernames)) {
    rights = 1;
}
if (username.equals(adminUsernames)) {
    rights = 2;
}
someArray[index] 

这里是你比较的意图。如果要比较
数组
,则可以使用
数组.equal(arr1,arr2)
。或者,如果您打算比较索引值,则可以选择
string.equals(str2)

你可以-它总是
false
:-)@Sebastian是的,我同意,因为equals将
Object
作为参数,这就是它允许进行这种比较的原因。谢谢!!我真的不明白,我试过了,但仍然不起作用/用户名是什么?它的价值是什么?(您可以使用
System.out.println
)用户名是
私有临时字符串用户名及其内容是什么?您只需要学习java的代码概念。顺便说一句,你可以通过这个链接了解更多
public String modUsernames[] = {"Test", "Test2"};
public String adminUsernames[] = {"Mod Jack", "Mod Demon"};

if (username.equals(modUsernames)) {
    rights = 1;
}
if (username.equals(adminUsernames)) {
    rights = 2;
}