比较字符串数组和字符串

时间:2019-05-21 12:49:59

标签: java android

我尝试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]

没有错误,返回假

5 个答案:

答案 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方法在这种情况下的工作方式有所不同。