デブのDEV日記

港区で働くデブによるDEV(DEVELOPE)やデブ飯の記録。そんな美味いならデブになっても構わない。

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から前方一致した都道府県が返る。