如何检查关联键的ArrayList是否包含感兴趣的字符串?

时间:2011-05-05 16:38:51

标签: java arraylist

我有LinkedHashMap<String,ArrayList<String>> h

如果我这样做:System.out.println(h.get("key1"));它打印出来:[Burger King]

但如果我这样做:

if (h.get("key1").contains("Burger"))
    System.out.println("Key1 contains Burger");

它忽略了它。如何检查相关密钥的ArrayList中的特定字符串?

5 个答案:

答案 0 :(得分:4)

ArrayList.contains ()如果此列表包含指定的元素,则返回true。

在你的情况下,它不包含“Burger”,但它包含“Burger King”,匹配在子字符串上不相同。

为了达到你想要的目的,你需要在ArrayList上循环,并检查每个元素,并在String上应用 String.contains (),该字符串被定义为“当且仅返回true如果此字符串包含指定的char值序列“。

如果您还想忽略这种情况,可以在应用String.contains()之前将 String.toLowerCase ()应用于搜索词和每个元素。

答案 1 :(得分:1)

您正在测试列表中是否包含部分字符串,这不起作用,因为实际值是“汉堡王”。如果要检查部分匹配,则需要在ArrayList的每个元素上调用contains()

答案 2 :(得分:0)

List.contains()查找完全匹配的元素。

你是说这个吗?

for(String s: results.get("key1")) 
  if(s.contains("Burger"))
    System.out.println("Key1 contains Burger");

答案 3 :(得分:0)

您必须遍历String中的所有ArrayList<String>个对象,并调用他们的 contains()方法:

boolean containsSubString(final Collection<String> strings, final String searchString) {
  for (String s : strings) {
    if (s.contains(searchString)) {
      return true;
    }
  }
  return false;
}

答案 4 :(得分:0)

List包含字符串Burger King,您正在寻找字符串Burger。因此没有输出。