一、概述
在本教程中,我们将了解一些在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 字符串。
0 评论