mapのgetに正規表現みたいなもの使えないかなと思いそのための手習い。
2008/01/24
java
mapのgetに正規表現みたいなもの使えないかなと思いそのための手習い。
package a;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
public class A {
public static void main(String[] args) {
Map<String, String> map = new HashMap<String, String>() {
{
put("1234", "1234");
put("123A", "123A");
put("1236", "1236");
put("1237", "1237");
put("12390", "12390");
}
};
List<String> list = a("123x", map);
System.out.println(list);
}
static List<String> a(String k, Map<String, String> map) {
k = k.replaceAll("x", "[0-9]");
Iterator<String> iterator = map.keySet().iterator();
List<String> list = new ArrayList<String>();
while (iterator.hasNext()) {
String s = iterator.next();
if (s.matches(k)) {
// System.out.println(s);
list.add(map.get(s));
}
}
return list;
}
}
: