ランダムなサイズ(3〜20)のランダムな文字列を生成しようとすると、小さな問題が発生します。私はすべての文字が(小文字)からZ(大文字)までの配列arr
を持っています。私はランダムな長さarrLength
を第2の配列arr2
に生成します。ランダムに選択された文字がいくつか含まれています。ランダムな文字列を生成して1文字が欠けています
私の問題は、文字 'a'(小文字)がランダムに生成された文字列に現れないことです。間違いはfor
ループ内にあるかもしれないと思いますが、これまで見たことがありませんでした。たぶんそれは(int)
キャスティングまたはMath.floor
丸めと関係がありますか?代わりに魔法の定数50
使用arr.length
の
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