Chaine de caractères aléatoire
Résolu
shadow
-
shadow -
shadow -
Hello!
Je génère une chaîne de caractères aléatoire avec la méthode randomUUID().
Une chaîne de caractère de ce type m'est retournée:
Deux choses:
1) Quelques soient les paramètres donnés au constructeur UUID (UUID(long mostSigBits, long leastSigBits) ), la taille de la chaîne reste inchangée. Pourquoi? Ça n'est pas sensé spécifier sa taille?
2)Les 4 traits d'union étant toujours présents à la même position, j'ai supposé qu'ils ne faisaient pas parti de la chaîne. Si c'est bien le cas, auriez-vous une idée de comment je pourrais les supprimer?
Je vous remercie.
Je génère une chaîne de caractères aléatoire avec la méthode randomUUID().
public static void main (String argv[]){ UUID length = new UUID(0,31); UUID chaine = length.randomUUID(); System.out.println(chaine); }
Une chaîne de caractère de ce type m'est retournée:
dca1c987-27e6-468f-be2a-f69993f244c5
Deux choses:
1) Quelques soient les paramètres donnés au constructeur UUID (UUID(long mostSigBits, long leastSigBits) ), la taille de la chaîne reste inchangée. Pourquoi? Ça n'est pas sensé spécifier sa taille?
2)Les 4 traits d'union étant toujours présents à la même position, j'ai supposé qu'ils ne faisaient pas parti de la chaîne. Si c'est bien le cas, auriez-vous une idée de comment je pourrais les supprimer?
Je vous remercie.
A voir également:
- Chaine de caractères aléatoire
- Caractères ascii - Guide
- Caractères spéciaux - Guide
- Chaine tnt gratuite sur mobile - Guide
- Plus de chaine tv - Guide
- Chaine radio - Télécharger - Médias et Actualité
2 réponses
Le UUID (Universal Unique IDentifier), n'est pas fait pour générer une chaîne de caractères aléatoires, mais comme son nom l'indique un identifiant !
Si tu veux de l'aléatoire, utilise la classe Random, tu peux ensuite mettre en forme un BigInteger dans la base de ton choix. Par exemple la base 36 qui permet d'avoir une représentation des entiers aléatoires avec 10 chiffres et 26 lettres.
Exemple :
Si tu veux de l'aléatoire, utilise la classe Random, tu peux ensuite mettre en forme un BigInteger dans la base de ton choix. Par exemple la base 36 qui permet d'avoir une représentation des entiers aléatoires avec 10 chiffres et 26 lettres.
Exemple :
private static final Random random = new Random(); /** * @param p poids de l'entier (en octets) * @param n nombre de caractères à utiliser (entre 2 et 36) * @return une chaîne de caractères représentant en base 'n' un entier aléatoire de 'p' octets */ public static String randomString(int p, int n) { byte[] bytes = new byte[p]; random.nextBytes(bytes); BigInteger big = new BigInteger(bytes).abs(); return big.toString(n); } /** * @param length taille de la chaine de caractères * @return une chaîne de caractères de taille 'length' représentées avec tous les chiffres et lettres. */ public static String randomString(int length) { String str = randomString(length,36); return str.substring(str.length()-length); }