我有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」。如何實現它?是否有任何通配符搜索字符串?我不能使用任何外部庫。
'字符串'''方法'匹配'。你也可以使用'Pattern'和'Matcher'類。 –
如果列表爲空,爲什麼返回null?返回一個空列表會更有意義。 – arshajii
assertArrayEquals(new Object [] {「best」,「crest」,「tempest」,「test」,「zest」},getSortedArray(dict.query(「* est」)));沒有返回任何東西。 – NEO