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;
}