繁体   English   中英

比较Strings的Arraylist和String

[英]Compare Arraylist of Strings with String

我尝试使用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);
}

样本ARRAY:

 [user1@gmail.com, user2@gmail.com, user3@gmail.com]

没有错误,返回错误

一个正常工作的原始示例:

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))返回什么。

boolean isThere = Arrays.asList(yourArray).contains("test");

if(isThere){

}
else{

}

首先,您示例中的列表为空。 Sencodly,你不需要使用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");
    }
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"));
  }
}

您已经有一个字符串列表,其中包含call包含。 如果找到匹配,它将起作用。

为什么它现在失败基本上是当你调用asList时返回的列表不是字符串列表,所以equals方法在这种情况下的工作方式不同。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM