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 :(得分:3)
(username.equals(modUsernames))
你不应该将String与Array进行比较,如果username是一个数组,那么你可以检查两者是否都是这样的。
请使用Arrays.equals(ar1,ar2)
。
或者使用数组索引并使用循环逐个检查。
username.equals(modUsernames[0])
或者您可以使用Arrays.toString()
并使用contains
方法
Arrays.toString(modUsernames).contains(username);
答案 1 :(得分:2)
假设username
是String
:变量modUsernames
是一个String
的数组,它不是一个String
。您必须将String
username
与该阵列的一个elemenet进行比较:
if (username.equals(modUsernames[0]))
例如。
注意:您访问数组元素的方式是使用索引:
someArray[index]
大多数编程语言中的索引都以0
开头。因此,如果数组的长度为2(即它有两个元素),则仅可以使用索引0
和1
。
答案 2 :(得分:2)
正如其他人所述,您无法将String
与String[]
进行比较,您可以做的是检查String
中是否包含String[]
,例如:
if (Arrays.asList(modUsernames).contains(username)){
rights = 1;
}
答案 3 :(得分:1)
这是你打算比较的意图。如果要比较arrays
,那么您可以选择Arrays.equal(arr1,arr2)
。或者如果您打算比较索引值,那么您可以转到string.equals(str2)
;