Mapの前方一致検索
今やっているシステムでCSVファイルでデータ連携される住所で1行で来る物がある。
システム上は、都道府県・住所1・住所2・住所3のように分割してカラムを保持しているので
1行で来る住所から都道府県を取り出して、システムのコード値に変換してやんないといけない。
Map<都道府県名, 都道府県コード>のようなMapオブジェクトをシステムで保持する事にして
ここから住所の先頭3文字を切り出して、都道府県コードを取得する処理を作成。
「神奈川県」のように4文字来る物もあるが、とりあえず3文字を切り出してMapから前方一致検索して取得する事にした。
protected String getAreaNameByMap(Map<String, String> areaCodeMap, String areaPrefix) { for (String key : areaCodeMap.keySet()) { // キーを取得 if (key != null) { if (key.startsWith(areaPrefix)) { return key; } } } return ""; }
これで、Mapから前方一致した都道府県が返る。