1. 개요

이 사용방법(예제)에서는 Java에서 UUID(Universally Unique Identifier) ​​문자열의 유효성을 검사하는 몇 가지 방법을 살펴보겠습니다.

UUID 클래스 메서드 중 하나를 살펴본 다음 정규식을 사용합니다.

2. UUID.fromString() 사용

문자열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 메서드 `1-1-1-1-1`과 같은 문자열에 대해 `00000001-0001-0001-0001-000000000001`을 반환합니다. 따라서 이 경우를 처리하기 위해 문자열 비교를 포함했습니다.

어떤 사람들은 예외를 사용하는 것이 흐름 제어에 좋지 않다고 주장할 수 있으므로 동일한 결과를 달성하는 다른 방법을 보게 될 것입니다.

3. 정규 표현식 사용

UUID를 확인하는 또 다른 방법은 형식과 정확히 일치 하는 정규식을 사용하는 것입니다.

먼저 문자열을 일치시키는 데 사용할 패턴 을 정의해야 합니다.

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 에서 사용할 수 있습니다 .

Generic footer banner