У меня есть HashMap<Integer,String>
. Я попытался следующий код, чтобы запросить карту и вернуть все возможные значенияПоиск с подстановочным знаком в коллекции String
public Collection<String> query(String queryStr) {
List<String> list = new ArrayList<String>();
for (Map.Entry<String, Integer> entry : myMap.entrySet()) {
if (queryStr.matches(entry.getKey()))
list.add(entry.getKey());
}
if (list.isEmpty())
return null;
else
return list;
}
Если карта имеет "test","best","crest","zest","testy","tether","temper","teat","tempest"
. Запрос te*t
должен вернуть "teat","tempest","test"
. Для «test *» он должен возвращать «тест», «testy». Как его реализовать? Есть ли поиск подстановочных знаков для строки? И я не могу использовать какие-либо внешние библиотеки.
'String' имеет метод' matches'. Вы также можете использовать классы «Pattern» и «Matcher». –
Зачем возвращать null, если список пуст? Было бы разумнее просто вернуть пустой список. – arshajii
Тест assertArrayEquals (новый Object [] {"best", "crest", "tempest", "test", "zest"}, getSortedArray (dict.query ("* est"))); ничего не возвращает. – NEO