8 Zeichen eindeutige Zeichenfolge in Java

8

Gibt es eine Möglichkeit, zufällige und eindeutige 8 Zeichen lange Zeichenfolgen in Java zu erzeugen?

%Vor%

und dann ist Id zum Beispiel wf41Av5g

    
danny.lesnik 17.10.2011, 08:58
quelle

9 Antworten

21

Sie können RandomStringUtils

%Vor%     
bilash.saha 17.10.2011, 09:08
quelle
10

Die Eigenschaft Eindeutigkeit hängt vom Bereich ab, in dem Sie sie verwenden. Java kann sicherlich zufällige Zeichenfolgen generieren. Wenn Sie jedoch eine universell eindeutige ID verwenden möchten, können Sie UUID Klasse.

%Vor%     
Johan Sjöberg 17.10.2011 09:01
quelle
10

Wenn die Eindeutigkeit wichtig ist, können Sie nicht einfach Strings erzeugen. Es gibt keine Möglichkeit, eine Kollision zu vermeiden. Sogar UUIDs können kollidieren, obwohl es ziemlich unwahrscheinlich ist.

Sie können die verwendeten Zeichenfolgen protokollieren. Wenn Sie eine neue zufällige Zeichenfolge generieren, überprüfen Sie den Datensatz, um festzustellen, ob es sich um ein Duplikat handelt. Ist dies der Fall, verwerfen Sie ihn und versuchen Sie es erneut.

Allerdings würde ich vorschlagen, dass Sie keine Zufallszahlen generieren. Behalten Sie stattdessen einen Zähler und verschlüsseln Sie seine Ausgabe, um zufällig aussehende Zahlen zu erzeugen. Diese werden garantiert nie kollidieren, wenn Sie dies richtig machen. Siehe eine frühere Antwort von mir oder eins von Rossum

    
Tom Anderson 17.10.2011 09:27
quelle
2

Sie können diese Zeichenfolge auf Basis der aktuellen Uhrzeit erstellen.

Zum Beispiel:

2014 06 04 16 21 20 79 --- & gt; 14 06 04 16 21 20 79

Dann können Sie alle zwei Ziffern (außer den letzten zwei) für ein alphanumerisches Zeichen mithilfe der Tabelle ( Ссылка ) übersetzen alle von ihnen sind kleiner als 59)

dann erhalten Sie

14 - O
06 - G
04 - E
16 - Q
21 - v 20 - U

OGEQVU79 & lt; - genau 8 Zeichen. Ein bisschen kompliziert, aber es funktioniert, wenn Sie Ihre Funktion nicht oft als 0,01 s aufrufen würden

    
surcho 04.06.2014 14:30
quelle
0
%Vor%     
epoch 17.10.2011 09:03
quelle
0

Schnelle und schmutzige Lösung mit java.util.UUID :

%Vor%     
helpermethod 17.10.2011 09:03
quelle
0

Bitte versuchen Sie folgenden Code:

%Vor%     
Tran Dinh Thoai 17.10.2011 09:04
quelle
0

Inzwischen müssen Sie Ihre Antwort erhalten haben, aber für diejenigen, die diese Seite erreichen, versuchen Sie diesen Code:

öffentliche Klasse RandomValueXML {

%Vor%

}

Hier gewährleistet die Verwendung von Set die Einzigartigkeit, während die Verwendung von HashSet eine bessere Leistung beim Lesen und Schreiben gewährleistet.

    
Anup 01.03.2017 16:17
quelle
-2
%Vor%

gibt Ihnen einzigartige 8 Zeichen String im HEX-Format.

    
Suryakanta Mahanty 21.02.2018 06:27
quelle

Tags und Links