将字符串与arraylist中的字符串的一部分进行比较

时间:2014-04-28 20:29:17

标签: java string arraylist comparison

标题可能有点令人困惑或误导,但我想比较一个字符串:

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字符串中的“短语”进行比较?

4 个答案:

答案 0 :(得分:1)

要检查您要求的内容,您必须遍历数组中包含的值,并检查它们是否包含您要检查的字符串的值。

for (String fromArray : array) {
    if (fromArray.contains(mystring)) {
        // put your code here
    }
}

此方法区分大小写。要解决此问题,您可以将字符串更改为小写(使用toLowerCase()方法),或使用专门设计的库。一个这样的库是Apache Commons库。

http://commons.apache.org/proper/commons-lang/javadocs/api-release/org/apache/commons/lang3/StringUtils.html#containsIgnoreCase%28java.lang.CharSequence,%20java.lang.CharSequence%29

如果要检查数组元素,而不是包含,而不是匹配要检查的字符串,则可以使用matches()方法。

文档链接:

http://docs.oracle.com/javase/7/docs/api/java/lang/String.html

Apache commons StringUtils

答案 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);
            }
        }