我尝试Arrays.asList().contains(string)
将数组项与字符串进行比较,但即使emailid匹配,每次返回的结果都是false。
这是我的数组:
List<String> arraySE = new ArrayList<String>();
if(Arrays.asList(arraySE).contains(c.getString(c.getColumnIndex(KEY_EMAIL)))){
user.setSelected(true);
} else{
user.setSelected(isSelect);
}
示例数组:
[user1@gmail.com, user2@gmail.com, user3@gmail.com]
没有错误,返回假
答案 0 :(得分:0)
可以正常工作的原始示例:
import java.util.ArrayList;
import java.util.List;
public class Main {
public static void main(String[] args) {
List<String> arrayList = new ArrayList<>();
arrayList.add("Hello");
arrayList.add("Hola");
arrayList.add("Hallo");
boolean contains = arrayList.contains("Hello");
System.out.println(contains);
}
}
我建议您调试代码,尤其要查看c.getString(c.getColumnIndex(KEY_EMAIL))
返回的内容。
答案 1 :(得分:0)
boolean isThere = Arrays.asList(yourArray).contains("test");
if(isThere){
}
else{
}
答案 2 :(得分:0)
首先,示例中的列表为空。
明智地,您不需要使用Arrays.asList(arraySE)
,因为它已经是列表。
您可以简单地使用contains函数来检查:
List<String> arraySE = Arrays.asList("user1@gmail.com", "user2@gmail.com", "user3@gmail.com");
if (arraySE.contains("user1@gmail.com")) {
System.out.println("true");
} else {
System.out.println("false");
}
答案 3 :(得分:0)
import java.util.ArrayList;
import java.util.Arrays;
public class Test2 {
public static void main(String[] args) {
String str[] = {"A","B","C","D"};
ArrayList a = new ArrayList(Arrays.asList(str));
System.out.println(a.contains("A"));
}
}
答案 4 :(得分:0)
您已经有一个字符串列表,其中包含呼叫。如果找到匹配项,它将起作用。
现在失败的原因基本上是当您调用asList时返回的列表不是字符串列表,因此equals方法在这种情况下的工作方式有所不同。