2008-02-28

Javaプチテク 住所を都道府県と市区町村以降で分割 / md5sum算出

ただの自分用メモ。無保証なので使う場合は自分でちゃんと検証すること。

import java.util.regex.Matcher;
import java.util.regex.Pattern;

import java.io.UnsupportedEncodingException;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;

/**
* 住所の文字列を都道府県と市区町村以降に分割する
*/

public String[] splitAddress(String fullAddress)
{
Pattern pattern = Pattern.compile("^.{2,3}?[都道府県]");
Matcher matcher = pattern.matcher(fullAddress); // 分割前住所
matcher.find();

String[] result = new String[2];
result[0] = matcher.group(); // 都道府県
result[1] = matcher.replaceFirst(""); // 市区町村以降
return result;
}

/**
* 文字列からmd5sumを算出して16進表記(32文字)で返す
*/

public String md5sum(String source)
{
try {
MessageDigest digest = MessageDigest.getInstance("MD5");
digest.update(source.getBytes("UTF-8"));
byte[] d = digest.digest();
return String.format(
"%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x",
d[0],d[1],d[2],d[3],d[4],d[5],d[6],d[7],
d[8],d[9],d[10],d[11],d[12],d[13],d[14],d[15]);
} catch (NoSuchAlgorithmException e) {
// 来るなよこんなところに
e.printStackTrace();
throw new RuntimeException(e);
} catch (UnsupportedEncodingException e) {
// 来るなってばよ
e.printStackTrace();
throw new RuntimeException(e);
}
}

0 件のコメント:

コメントを投稿

<< ホーム