[Java] UUIDやMACアドレスが正しいかチェックする
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;