나는 HashMap<Integer,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 *'의 경우 'test', 'testy'를 반환해야합니다. 그것을 구현하는 방법? 문자열에 와일드 카드 검색이 있습니까? 그리고 외부 라이브러리를 사용할 수 없습니다.
'String'에는'matches' 메소드가 있습니다. 'Pattern'과'Matcher' 클래스를 사용할 수도 있습니다. –
목록이 비어 있으면 null을 반환하는 이유는 무엇입니까? 빈 목록을 반환하는 것이 더 합리적입니다. – arshajii
assertArrayEquals (새 Object [] { "best", "crest", "tempest", "test", "zest"}, getSortedArray (dict.query ("* est")))); 아무것도 반환하지 않습니다. – NEO