我有ArrayList<String>
,我添加了3-4个网站名称。比如,http://www.google.com,https://www.stackoverflow.com等。现在,在我的应用程序中,如果我只输入“google”,那么我想将该“google”字词与ArrayList<String>
进行比较。
我被困在这里。任何人都可以告诉我如何将字符串与数组对象进行比较?
提前致谢。
答案 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;
}