Ja. Aber ich glaube, das es einfacher ist den String in drei Schritten anzulegen.
Als nächstes erstellt das Programm das Passwort:
String passwort = ""; int j = 0; while (j < ziffern) { passwort = passwort + auswahl.charAt( rand.nextInt(auswahl.length()) ); j = j + 1; }
Zuerst wird passwort
mit einem Leerstring initialisiert.
Dann werden zufällige Zeichen, ausgewählt aus auswahl
,
eines nach dem anderen angehängt.
Der Ausdruck
rand.nextInt(auswahl.length())
wählt zufällig einen Integer von 0 bis (aber nicht einschließlich) der Länge des Strings von auswahl
.
Dann wird dieser Integer verwendet, um ein Zeichen aus dem String auswahl
zu wählen.
Angenommen die Zufallszahl ist 7. Dann ist
auswahl.charAt(7)
das 8. Zeichen in dem String auswahl
, da das Zählen mit 0 beginnt.
Dieses Zeichen wird an das Passwort angehängt und die Schleife wird wiederholt.
(Mehr über Stringmethoden findet Ihr im Kapitel 29.)
Wir betrachten diese Anweisung:
passwort = passwort + auswahl.charAt( rand.nextInt(auswahl.length()) );
4 Dinge passieren in dieser Anweisung. Das könnte schwer nachzuvollziehen sein. Ist das Folgende äquivalent?
String passwort = ""; int j = 0; int bereich, index; char ch; while (j < ziffern) { bereich = auswahl.length(); index = rand.nextInt(bereich); ch = auswahl.charAt(index); passwort = passwort + ch; j = j + 1; }