我有ArrayList<String>,因为我添加了3-4个网站名称.比如,http://www.google.com,https://www.stackoverflow.com等等。现在在我的应用程序中,如果我只输入"google“,那么我想将"google”这个词与ArrayList<String>进行比较。
我被困在这里了。有人能告诉我如何将字符串与数组对象进行比较吗?
提前谢谢。
发布于 2014-02-12 10:52:17
要做到这一点,您需要覆盖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有关更多自定义实现,请参见http://grepcode.com/file/repository.grepcode.com/java/root/jdk/openjdk/6-b14/java/util/ArrayList.java。
发布于 2014-02-12 10:20:21
ArrayList.contains()通过等于测试字符串。从文件中:
如果此列表包含指定的元素,则公共布尔包含(对象o)返回true。更正式地说,返回true当且仅当此列表包含至少一个元素e时(o==null?e==null : o.equals(e))。
示例:
boolean contains = yourArrayListInstance.contains(yourString);编辑。如果要检查子字符串,必须在ArrayList的内容上循环并调用String.contains
发布于 2014-02-12 10:29:38
您可以迭代您的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
https://stackoverflow.com/questions/21724948
复制相似问题