嘗試生成隨機大小(3到20之間)的隨機字符串時遇到小問題。我有一個數組arr
,所有字符從(小寫)到Z(大寫)。然後我爲第二個數組arr2
產生一個隨機長度arrLength
,它將包含一些隨機選擇的字符。生成隨機字符串,缺少一個字母
我的問題是,字母'a'(小寫)永遠不會出現在我的隨機生成的字符串中。我認爲這個錯誤可能在for
循環中,但我目前看不到它。可能它與(int)
cast或Math.floor
四捨五入有關係?
char[] arr = "abcdefghijklmnopqrstuwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ".toCharArray();
int arrLength = (int) (Math.floor((Math.random() * ((17 - 3) + 1)) + 3));
char[] arr2 = new char[arrLength];
String str = "";
for(int i=0;i<arrLength;i++) {
char num = arr[(int) (Math.floor(Math.random() * (50) + 1))];
arr2[i] = num;
}
我懷疑這是您在Math.floor中的+1 – DejaVuSansMono