拨开荷叶行,寻梦已然成。仙女莲花里,翩翩白鹭情。
IMG-LOGO
主页 文章列表 在Java 中验证UUID 字符串

在Java 中验证UUID 字符串

白鹭 - 2022-10-03 2229 0 2

一、概述

在本教程中,我们将了解一些在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 评论

发表评论

您的电子邮件地址不会被公开。 必填的字段已做标记 *