[Java] UUIDやMACアドレスが正しいかチェックする

2 min read

UUID や MAC アドレスのチェックをする機会があって色々と探したのですが無かったので自作しました。
備忘録として。

UUIDをチェックする

public static Boolean isUUID(String uuid) {
  String reg = "[0-9A-F]{8}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{12}";

  Pattern p = Pattern.compile(reg);
  Matcher m = p.matcher(uuid);

  return m.find();
}

桁数だけのチェック追記

boolean isUUID = false;

if (uuid.length() == 36) {
  String[] parts = uuid.split("-");

  if (parts.length == 5) {
    if ((parts[0].length() == 8) &&
        (parts[1].length() == 4) &&
        (parts[2].length() == 4) &&
        (parts[3].length() == 4) &&
        (parts[4].length() == 12)) {
      isUUID = true;
    }
  }
}

return isUUID;

-繋ぎをsplitで分割して桁数を見ていきます。
今後、16 進数の数値が変わっても全体の各桁が変わらなければ使えるかな…?

MACアドレスをチェックする

public static Boolean isMACAdrs(String macAdrs) {
  String reg = "^([0-9A-Fa-f]{2}[:-]){5}[0-9A-Fa-f]{2}$";

  Pattern p = Pattern.compile(reg);
  Matcher m = p.matcher(macAdrs);

  return m.find();
}

おわり

手抜きですが両者の違いは正規表現でしかないです。 あと正規表現は static final String でいいと思います。

開発環境が補完してくれるでしょうが以下のimportもお忘れなく。

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