String - Zufallsgenerator

testemich

Mitglied
Hallo Java-Kenner,

ich bin neu auf dem Forum und im JAVA-Geschäft. Bisher nur mit HTML und Co. gearbeitet. Daher sind meine JAVA-Kenntnisse dementsprechend bescheiden. Und wie es ein Zufall will, brauche ich nun ausgerechnet in JAVA einen Zufallsgenerator, den ich selbst nicht hinbekomme.

Kann mir vielleicht jemand weiterhelfen? Ideen? Vorschläge?

Der Zufallsgenerator soll folgendes liefern und zwar jedes mal, wenn der Script aufgerufen wird:

Eine Zahl-Buchstaben-Zufallsreihe von 10 Zeichen. Alles in einer Reihe.

z.B. "GHE73UDB89" oder "4DK8D39UKK" u.s.w.


Ich denke, dass das relativ einfach ist, aber irgendwie bekomme ich es nicht hin. Bei den Beispielen, die ich aus dem Internet hatte und die ich versucht hatte umzubauen, klappte es einfach nicht.

Würde mich freuen, wenn mir jemand weiterhelfen könnte. Danke.

Viele Grüße

Micha
 
Java:
String randomString = new BigInteger(50, new SecureRandom()).toString(32).toUpperCase();
 
Wie sieht den dein Code bis jetzt aus ?

Das kann ich nicht mehr sagen. Ich hatte einfach versucht ein paar Codeschnippsel aus dem Internet umzubauen. Aber die hatten alle eine andere Aufgabenstellung, die zu meinem Vorhaben nicht passte. Daher waren meine Versuche es geradezubiegen erfolglos. Weshalb die Code-Schnippsel dann sofort wieder im "Papierkorb" landeten.
 
Ich würde es schon gerne verstehen.

Ist das die einzige Zeile? Oder ist das nur die "KernfunktioN" und ich muss noch etwas drumrum basteln. Ich frage, weil andere Beispiele, die ich fand alle etwas größer waren.

Danke
 
Das ist im wesentlichen alles 😉
new BigInteger(50, new SecureRandom()) erstellt eine 50 bits große, zufällige Zahl.
toString(32) erstellt dann daraus einen String im 32-stelligen Zahlensystem (Zeichen 0-9 und a-z), ähnlich Hexadecimalsystem, und toUpperCase wandelt dann alle Zeichen in Großbuchstaben um.

Kleinen Fallstrick hat's allerdings; die Zahl hat nicht immer alle 10 Stellen, sondern nur, wenn die Zahl auch groß genug ist.
 
Zuletzt bearbeitet:
Jeweils 5 bit der Zahl werden mit einem Zeichen dargestellt, da 2^5 = 32 - mit 5 bit kann man 32 Zahlen darstellen, wenn man 32 Zeichen hat, sind 5 bit = 1 Zeichen.

Deshalb die 32 stat 36 - mit 36 Zeichen müsste man die Zahl entsprechend vergrößern, kann dann aber auch längerer als 10 Zeichen bekommen
 

Zurück
Oben