标题可能有点令人困惑或误导,但我想比较一个字符串:
String mystring = "abc";
然后尝试将它与arraylist中包含的每个字符串进行比较
ArrayList<String> array = new ArrayList<String>();
array.add("The first letters of the alphabet are abc");
array.add("abc");
array.add("Alphabet");
array.add("Nothing");
但是(并且我不确定)似乎只有当两个字符串匹配时才包含true,而如果单词或短语在字符串内部则不包含。
如何将所需字符串与ArrayList
字符串中的“短语”进行比较?
答案 0 :(得分:1)
要检查您要求的内容,您必须遍历数组中包含的值,并检查它们是否包含您要检查的字符串的值。
for (String fromArray : array) {
if (fromArray.contains(mystring)) {
// put your code here
}
}
此方法区分大小写。要解决此问题,您可以将字符串更改为小写(使用toLowerCase()
方法),或使用专门设计的库。一个这样的库是Apache Commons库。
如果要检查数组元素,而不是包含,而不是匹配要检查的字符串,则可以使用matches()
方法。
文档链接:
http://docs.oracle.com/javase/7/docs/api/java/lang/String.html
答案 1 :(得分:1)
试试这个
// check if string is exist in array
if(array.Contains("YourString"))
{
// if contain then u can use this or do operations
Response.Write("YourString is available in array");
}
这会对你有所帮助
答案 2 :(得分:0)
很简单。
您在ArrayList上使用Iterator。
for(String s: array):
if(s.toLowerCase().contains(myString.toLowerCase())) { //find if such a substring exits within each string
//do something
}
}
如果您不想检查区分大小写,则从行中删除toLowerCase()。
我希望你知道toLowerCase()做了什么,把它放在代码中并没有对你产生影响。
答案 3 :(得分:-1)
您需要遍历Array List的所有元素,然后需要使用contains()
方法检查
for (String str : array){
if(str.contains(mystring)){
System.out.println(str + " Conatins" + mystring);
}
}