UUID.fromString în Java

Transformă un text de forma 8-4-4-4-12 cifre hexazecimale într-un obiect UUID; aruncă IllegalArgumentException dacă nu este valid.

Sintaxă
static UUID fromString(String text)

Ce face UUID.fromString

UUID.fromString citește un UUID primit ca text (din URL, din baza de date, dintr-un fișier JSON) și creează obiectul UUID. Literele mari și mici sunt acceptate la fel; toString() le scrie apoi cu litere mici.

Dacă textul nu are forma corectă (cratime lipsă, caractere care nu sunt hexazecimale, lungime greșită), aruncă IllegalArgumentException. Prinde excepția când textul vine de la utilizator.

Parametri

Parametru Descriere
text UUID-ul ca text, de exemplu "3f2b8c1e-9a47-4d0b-b6e2-71c5d8a90f14".

Ce returnează

Un obiect UUID.

Exemple

Exemplul 1: Citirea unui UUID dintr-un link

import java.util.UUID;

public class Main {
    public static void main(String[] args) {
        String link = "https://magazin.ro/comanda/3F2B8C1E-9A47-4D0B-B6E2-71C5D8A90F14";
        String parte = link.substring(link.lastIndexOf('/') + 1);
        UUID cod = UUID.fromString(parte);
        System.out.println("Cod: " + cod);
        System.out.println("Versiune: " + cod.version());
        System.out.println("Egal cu varianta cu litere mici: "
            + cod.equals(UUID.fromString("3f2b8c1e-9a47-4d0b-b6e2-71c5d8a90f14")));
    }
}

Rezultat

Cod: 3f2b8c1e-9a47-4d0b-b6e2-71c5d8a90f14
Versiune: 4
Egal cu varianta cu litere mici: true

Exemplul 2: Validarea unor coduri primite

import java.util.UUID;

public class Main {
    static boolean esteUuid(String text) {
        try {
            UUID.fromString(text);
            return text.length() == 36;
        } catch (IllegalArgumentException e) {
            return false;
        }
    }

    public static void main(String[] args) {
        String[] coduri = {
            "c0a81f52-0e3d-4b9a-8f61-2d7e4c19ab03",
            "c0a81f52-0e3d-4b9a-8f61",
            "comanda-ana-1042",
            "zzzzzzzz-0e3d-4b9a-8f61-2d7e4c19ab03",
        };
        for (String c : coduri) {
            System.out.println(c + " -> " + (esteUuid(c) ? "valid" : "invalid"));
        }
    }
}

Rezultat

c0a81f52-0e3d-4b9a-8f61-2d7e4c19ab03 -> valid
c0a81f52-0e3d-4b9a-8f61 -> invalid
comanda-ana-1042 -> invalid
zzzzzzzz-0e3d-4b9a-8f61-2d7e4c19ab03 -> invalid

Exemplul 3: Dus și întors: toString și fromString

import java.util.UUID;

public class Main {
    public static void main(String[] args) {
        UUID original = new UUID(0x1234_5678_9ABC_4DEFL, 0x8000_0000_0000_0001L);
        String text = original.toString();
        UUID inapoi = UUID.fromString(text);
        System.out.println(text);
        System.out.println("Același UUID: " + original.equals(inapoi));
    }
}

Rezultat

12345678-9abc-4def-8000-000000000001
Același UUID: true

Greșeli frecvente

  • Te bazezi doar pe fromString pentru validare strictă. Unele forme scurte sau cu zerouri lipsă pot fi acceptate; verifică și lungimea de 36 de caractere.
  • Nu prinzi IllegalArgumentException pentru textul venit de la utilizator. Un link greșit oprește programul.

Comenzi înrudite

  • UUID: Identificator unic de 128 de biți (ex. 3f2b8c1e-…); UUID.randomUUID() creează unul aleatoriu, practic imposibil de repetat.
  • IllegalArgumentException: Excepția aruncată când o metodă primește un argument cu valoare nepermisă (vârstă negativă, lună 13).
  • String.substring: Returnează o bucată din șir: de la beginIndex (inclusiv) până la endIndex (exclusiv) sau până la final.