首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何检查arraylist在android中包含这个特定的单词?

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

Stack Overflow用户
提问于 2014-02-12 10:18:35
回答 4查看 24.7K关注 0票数 6

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

我被困在这里了。有人能告诉我如何将字符串与数组对象进行比较吗?

提前谢谢。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2014-02-12 10:52:17

要做到这一点,您需要覆盖contains()__.的实现。我给你举一个简单的例子。

自定义ArrayList类

代码语言:javascript
复制
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;
    }
}

如何使用

代码语言:javascript
复制
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");
}

下面是上面代码示例的输出

代码语言:javascript
复制
ArrayList Contains google word
ArrayList does not Contains igoogle word

有关更多自定义实现,请参见http://grepcode.com/file/repository.grepcode.com/java/root/jdk/openjdk/6-b14/java/util/ArrayList.java

票数 5
EN

Stack Overflow用户

发布于 2014-02-12 10:20:21

ArrayList.contains()通过等于测试字符串。从文件中:

如果此列表包含指定的元素,则公共布尔包含(对象o)返回true。更正式地说,返回true当且仅当此列表包含至少一个元素e时(o==null?e==null : o.equals(e))。

示例:

代码语言:javascript
复制
boolean contains = yourArrayListInstance.contains(yourString);

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

票数 4
EN

Stack Overflow用户

发布于 2014-02-12 10:29:38

您可以迭代您的ArrayList<String>,就像

代码语言:javascript
复制
public String getWebsiteName(String toMatchString)
{
    ArrayList<String> yourArrayList = new ArrayList<String>();

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

并得到匹配的String

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21724948

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档