Как проверить, содержит ли ArrayList связанного ключа интересующую строку? - PullRequest
1 голос
/ 05 мая 2011

У меня есть 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 ]

4 голосов
/ 05 мая 2011

ArrayList.contains () Возвращает true, если этот список содержит указанный элемент.

В вашем случае он не содержит "Burger", но онсодержит "Burger King", совпадение идентично не для подстрок.

Для достижения того, что вы хотите, вы должны зациклить ArrayList и проверить каждый элемент с применением String.contains ()для строки, которая определена как " Возвращает истину, если и только если эта строка содержит указанную последовательность значений символов ".

Если вы также хотите игнорировать регистр, вы можете применить String.toLowerCase () к вашему поисковому запросу и к каждому элементу перед применением String.contains ().

1 голос
/ 05 мая 2011

вы тестируете список для включения частичной строки, которая не будет работать, поскольку фактические значения - "Burger King". Вам нужно вызвать contains() для каждого элемента ArrayList, если вы хотите проверить частичное совпадение.

0 голосов
/ 05 мая 2011

Вам нужно перебрать все 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;
}
0 голосов
/ 05 мая 2011

Список содержит строку Burger King, и вы ищете строку Burger. Следовательно, нет вывода.

0 голосов
/ 05 мая 2011

List.contains () ищет точный соответствующий элемент.

Вы имеете в виду это?

for(String s: results.get("key1")) 
  if(s.contains("Burger"))
    System.out.println("Key1 contains Burger");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...