Java – use wildcards to search in the string collection
•
Java
I have a HashMap < integer, string > I tried the following code to query the map and return all possible values
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;
}
If the map has "test", "best", "crest", "zest", "testy", "tether", "temp", "teat", "Tempest" The query for te * t should return "teat", "Tempest", "test" For 'test *', it should return "test", "testy" How? Are there any wildcard search strings? I cannot use any external libraries
Solution
String queryStr="te*t";
String queryStr="te*t";
queryStr = queryStr.replaceAll("\\*","\\\\w*");
System.out.println(query(queryStr));
Complete plan
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;
}
}
The content of this article comes from the network collection of netizens. It is used as a learning reference. The copyright belongs to the original author.
THE END
二维码
