Erzeugen einer Zufallszeichenkette

ck0815077

Neues Mitglied
Ich möchte eine Zufallszeichenkette erzeugen, die zwischen 1 und 20 Zeichen (ebenfalls zufällig) lang ist.

Dazu muss ich offensichtlich mit ASCII-Code arbeiten?!? Nicht druckbare Zeichen würde ich gerne vermeiden, also kommen nur ASCII-Zeichen infrage, die im Dezimalsystem die Dezimalzahlen 32 bis 126 darstellen

Kann mir jmand helfen?
 
Was genau ist das Problem? Kommst du mit etwas Bestimmtem nicht klar?
Wenn du nicht weißt, wo du den Zufall hernehmen kannst: dafür gibt es z.B. Math.random().

Pseudocode:

Code:
Ermittle mit Math.random(), wie lang die Zeichenkette sein wird
Erzeuge einen String

for-Schleife, bis ermittelte Grenze erreicht ist:
    erzeuge ein zufälliges char zwischen 32 und 126 und weise es dem String zu

gib String aus
 
erzeuge ein zufälliges char zwischen 32 und 126 und weise es dem String zu

Ich würde empfehlen, entweder zuerst in ein char-Array oder einen StringBuilder zu schreiben, und das ganze erst am Ende in einen String umzuwandeln.

(aus'm Kopp - ohne Gewähr)
Java:
import java.util.Random;

...
Random random = new Random();
...
char[] array = new char[random.nextInt(19) + 1];
for(int i = 0; i < array.length; i++) {
   array[i] = 'a' + random.nextInt(26);
}
String s = new String(array);
 
Zuletzt bearbeitet:
@Landei:
Stimmt, das ist wahrscheinlich besser, als jedes Mal einen neuen String hinzuhauen. Hab zugegeben nicht so auf die Performantheit geschaut… 😳
 

Zurück
Oben