如何检查arraylist在android中包含这个特定的单词?

时间:2014-02-12 10:18:35

标签: android arraylist

我有ArrayList<String>,我添加了3-4个网站名称。比如,http://www.google.comhttps://www.stackoverflow.com等。现在,在我的应用程序中,如果我只输入“google”,那么我想将该“google”字词与ArrayList<String>进行比较。

我被困在这里。任何人都可以告诉我如何将字符串与数组对象进行比较?

提前致谢。

4 个答案:

答案 0 :(得分:5)

为此,您需要覆盖contains()的实施。我给你一个简单的例子。

自定义ArrayList类

public class MyArrayList extends ArrayList<String> {
    private static final long serialVersionUID = 2178228925760279677L;

    @Override
    public boolean contains(Object o) {
        return indexOf(o) >= 0;
    }

    @Override
    public int indexOf(Object o) {
        int size = this.size(); 
        if (o == null) {
            for (int i = 0; i < size ; i++) {
                if (this.get(i) == null) {
                    return i; 
                }
            }
        } else {
           for (int i = 0; i < size ; i++) {
                if (this.get(i).contains(String.valueOf(o))) {
                    return i; 
                }
            }
        }
        return -1;
    }
}

如何使用

MyArrayList arrayList = new MyArrayList(); 
arrayList.add("http://www.google.com");
arrayList.add("https://www.stackoverflow.com");
arrayList.add("http://pankajchunchun.wordpress.com");

if (arrayList.contains("google")) {
    System.out.println("ArrayList Contains google word");
}

if (arrayList.contains("igoogle")) {
    System.out.println("ArrayList Contains igoogle word");
} else {
    System.out.println("ArrayList does not Contains igoogle word");
}

以下代码示例的输出

ArrayList Contains google word
ArrayList does not Contains igoogle word

有关更多自定义实施,请参阅ArrayList Source Code

答案 1 :(得分:3)

ArrayList.contains()通过equals测试String。来自文档:

  

public boolean contains(Object o)如果此列表包含,则返回true   指定的元素。更正式地说,当且仅当这样时,返回true   list包含至少一个元素e,使得(o == null?e == null:   o.equals(E))。

示例:

boolean contains = yourArrayListInstance.contains(yourString);

编辑。如果要检查子字符串,则必须循环播放ArrayList的内容并调用String.contains

答案 2 :(得分:1)

您可以遍历ArrayList<String>之类的

public String getWebsiteName(String toMatchString)
{
    ArrayList<String> yourArrayList = new ArrayList<String>();

    for (String webSiteName : yourArrayList)
    {
        if (webSiteName.contains(toMatchString))
            return webSiteName;
    }
    return null;
}

获取匹配的String

答案 3 :(得分:0)

使用像这样的辅助函数

public static boolean containsSubString(ArrayList<String> stringArray, String substring){
    for (String string : stringArray){
        if (string.contains(substring)) return true;
    }
    return false;
}