java – 在String集合中使用通配符进行搜索
发布时间:2020-12-15 04:14:07 所属栏目:Java 来源:网络整理
导读:我有一个HashMap Integer,String.我尝试了以下代码来查询Map并返回所有可能的值 public CollectionString query(String queryStr) { ListString list = new ArrayListString(); for (Map.EntryString,Integer entry : myMap.entrySet()) { if (queryStr.matc
我有一个HashMap< Integer,String>.我尝试了以下代码来查询Map并返回所有可能的值
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 queryStr="te*t"; queryStr = queryStr.replaceAll("*","\w*"); System.out.println(query(queryStr)); 完整的计划 public class sample { static List<String> values = Arrays.asList("test","best","crest","zest","testy","tether","temper","teat","tempest"); /** * @param args */ public static void main(String[] args) { String queryStr = "te*t"; queryStr = queryStr.replaceAll("*","\w*"); System.out.println(queryStr); System.out.println(query(queryStr)); } public static Collection<String> query(String queryStr) { List<String> list = new ArrayList<String>(); for (String str : values) { if (str.matches(queryStr)) list.add(str); } if (list.isEmpty()) return null; else return list; } } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |