Ich versuche, den Code aufzuzeichnen, um die zufällige Zeichenfolge von 5 Zeichen aus einer vordefinierten Zeichenfolge zu generieren.Generieren einer zufälligen Zeichenfolge in Java, ohne zufällige Klasse oder Methode direkt für Zeichenfolge zu verwenden
Mein Ziel ist es, ein String-Array der Länge 5 zu erstellen und alle 5 zufälligen Strings in diesem Array zu speichern. So
, bis jetzt habe ich unten Code geschrieben:
public static String generateRandomString(int stringlength, String fullstring){
//Generating random number which will use to pick character from provider string at index[i]
int i =((int)(Math.random()*100));
//Created a character array to store the characters picked up from provided String
char [] randomString = new char[5];
//Checking the condition if generated random number is greater than or equals to string length to avoid OutOfBoundException
if (i>=stringlength){
generateRandomString(stringlength, fullstring);
}
//Else Fetching the character from provided string and storing it into Char[]
else
{
randomString [0] = (fullstring.charAt(i));
randomString [1] = (fullstring.charAt(i));
randomString [2] = (fullstring.charAt(i));
randomString [3] = (fullstring.charAt(i));
randomString [4] = (fullstring.charAt(i));
}
//Converting Char[] to String.
String returnString = new String(randomString);
//Returning String
return returnString;
}
public static void main(String[] args) {
// TODO Auto-generated method stub
//String Array to Store Random Strings
String [] array = new String[5];
//Provided String
String fullstring = "abcdefghijklmnopqrstuvwxyz";
int stringlength = fullstring.length();
//Loop to store random strings into all indexes of String[]
for(int j=0;j<5;j++){
array[j]=generateRandomString(stringlength, fullstring);
}
//Printing Final String[]
for(String var:array){
System.out.println(var);
}
}
Aber ich bin vor zwei Fragen:
- ich meine zufällige Zeichenfolge wollen nicht nur einzelne Zeichen enthalten, meine aktuellen Code wählt nur einen Charakter für alle 5 Orte. Weil es einen Wert nimmt (i). Ich möchte meinen Wert von (i) zu jedem zufälligen Wert nach jedem Zeichen, das für einen Index bei char [] gespeichert wurde, ändern.
z.B.
Ich erhalte "aaaaa" für eine zufällige Zeichenfolge, aber ich möchte wie "auzje"
- Wenn ich den Druck der Schluss String [], manchmal bekomme ich NULL string in meiner Ausgabe.
z.B. ""
"aaaaa"
""
"ggggg"
"iiiii"
Was ich endlich bin auf der Suche nach ist:
" ajsuh "
"ldugj"
"odueb"
"mcnde"
"yahnf"
Bitte vorschlagen.
Vielen Dank.
'Zufall [0] = (fullstring.charAt (i)); randomString [1] = (fullstring.charAt (i)); randomString [2] = (fullstring.charAt (i)); randomString [3] = (fullstring.charAt (i)); randomString [4] = (fullstring.charAt (i)); 'ist dein Schuldiger. Versuchen Sie das Debuggen, warum ... – nullpointer