在 Java 中驗證 UUID 字符串
瀏覽人數:322最近更新:
一、概述
在本教程中,我們將了解一些在 Java 中驗證 UUID(通用唯一標識符)字符串的方法。
我們將介紹一種UUID
類方法,然後我們將使用正則表達式。
2. 使用UUID.fromString()
檢查String
是否為UUID
的最快方法之一是嘗試使用屬於UUID
類的靜態方法fromString
對其進行映射。讓我們試一試:
@Test
public void whenValidUUIDStringIsValidated_thenValidationSucceeds() {
String validUUID = "26929514-237c-11ed-861d-0242ac120002";
Assertions.assertEquals(UUID.fromString(validUUID).toString(), validUUID);
String invalidUUID = "invalid-uuid";
Assertions.assertThrows(IllegalArgumentException.class, () -> UUID.fromString(invalidUUID));
}
在上面的代碼片段中,我們可以看到,如果我們嘗試驗證的字符串不代表 UUID,則會拋出IllegalArgumentException
。但是, fromString
方法將返回 `00000001-0001-0001-0001-000000000001` 用於字符串,例如`1-1-1-1-1`。所以我們已經包含了字符串比較來處理這種情況。
有些人可能會爭辯說,使用異常不是流控制的好習慣,所以我們將看到實現相同結果的不同方法。
3. 使用正則表達式
驗證 UUID 的另一種方法是使用與格式完全匹配的正則表達式。
首先,我們需要定義一個用於匹配字符串的Pattern
。
Pattern UUID_REGEX =
Pattern.compile("^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$");
然後,我們可以使用此模式嘗試將其與字符串匹配,以驗證它是否是 UUID:
@Test
public void whenUUIDIsValidatedUsingRegex_thenValidationSucceeds() {
Pattern UUID_REGEX =
Pattern.compile("^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$");
Assertions.assertTrue(UUID_REGEX.matcher("26929514-237c-11ed-861d-0242ac120002").matches());
Assertions.assertFalse(UUID_REGEX.matcher("invalid-uuid").matches());
}
4。結論
在本文中,我們學習瞭如何使用正則表達式或利用UUID
類的靜態方法來驗證 UUID 字符串。
與往常一樣,這些示例的代碼可在 GitHub 上找到。
本作品係原創或者翻譯,採用《署名-非商業性使用-禁止演繹4.0國際》許可協議