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 < anzahlZeichen )
{
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.)
In dem oben stehenden passieren ungefähr 4 Dinge in einer 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; }