mapのgetに正規表現みたいなもの使えないかなと思いそのための手習い。 2008/01/24

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;
}

}

: