我想寫下代碼以從預定義的字符串中生成5個字符的隨機字符串。在Java中生成隨機字符串,而不使用隨機類或方法直接用於字符串
我的目標是創建一個長度爲5的字符串數組,並將所有5個隨機字符串存儲在此數組中。
所以,到目前爲止,我已經寫了下面的代碼:
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);
}
}
但我現在面臨兩個問題:
- 我希望我的隨機字符串不僅僅包含單個字符,我當前的代碼對所有5個地方只挑選一個角色。因爲它取一個值(i)。我想將(i)中的值更改爲char []中每個存儲了一個索引的字符後的任意隨機值。
例如,
我正在「AAAAA」爲一個隨機字符串,但我想像「auzje」
- 當我打印最終的字符串[],有時我正在NULL字符串在我的輸出。
例如, 「」
「AAAAA」
「」
「GGGGG」
「IIIII」
什麼我終於尋找的是:
「 ajsuh「
「ldugj」
「odueb」
「mcnde」
「yahnf」
請建議。
很多謝謝。
'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));'是你的罪魁禍首。嘗試調試爲什麼... – nullpointer